From c3075b295f6ed2ae5734c28eb9611174f6208253 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 2 Nov 2025 14:23:31 +0100 Subject: [PATCH 001/358] enables pull requests on main branch Adds pull request trigger to the mkdocs workflow. --- .github/workflows/homebrew.yml | 7 ++++--- .github/workflows/mkdocs.yml | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/.github/workflows/homebrew.yml b/.github/workflows/homebrew.yml index 12cfa22056..3f3ee536b2 100644 --- a/.github/workflows/homebrew.yml +++ b/.github/workflows/homebrew.yml @@ -19,7 +19,8 @@ jobs: name: Bump Homebrew formula runs-on: macos-latest steps: - - name: Get version + - + name: Get version id: get-version shell: pwsh run: | @@ -27,7 +28,7 @@ jobs: if ($version -eq "") { $version = "${{ github.event.inputs.tag-name }}" } - "version=$version" >> $env:GITHUB_OUTPUT + "version=$version" >> $env:GITHUB_OUTPUT - uses: mislav/bump-homebrew-formula-action@v3 name: Bump Homebrew formula @@ -40,4 +41,4 @@ jobs: For additional details see https://github.com/GitTools/GitVersion/releases/tag/${{ steps.get-version.outputs.version }} env: - COMMITTER_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} \ No newline at end of file + COMMITTER_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 47a2f981f0..126128ed88 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -1,6 +1,21 @@ name: Markdown Update on: push: + branches: + - main + - 'fix/*' + - 'feature/*' + - 'poc/*' + - 'support/*' + paths: + - 'docs/**' + + pull_request: + branches: + - main + - 'support/*' + paths: + - 'docs/**' env: DOTNET_ROLL_FORWARD: "Major" From 3d6070f07411a7c18a2b3c2dcaca7a7bcbe07ff6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Nov 2025 12:36:41 +0000 Subject: [PATCH 002/358] (deps): Bump the serilog group with 1 update Bumps Serilog.Sinks.Console from 6.0.0 to 6.1.0 --- updated-dependencies: - dependency-name: Serilog.Sinks.Console dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: serilog ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 87634d1214..82264a6539 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -27,7 +27,7 @@ - + From 211c840d7e3d4f5f9e1ae1938f38eefe7de817d6 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 2 Nov 2025 21:07:58 +0100 Subject: [PATCH 003/358] publish nuget packages using Trusted Publiishing uses OIDC token exchange for nuget api key retrieval, instead of storing the api key in github secrets. --- .github/workflows/_publish.yml | 6 +- build/publish/Tasks/PublishNuget.cs | 132 ++++++++++++++++++++++++++-- 2 files changed, 126 insertions(+), 12 deletions(-) diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index 864431558b..79e8b87583 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -4,7 +4,7 @@ on: env: DOTNET_INSTALL_DIR: "./.dotnet" DOTNET_ROLL_FORWARD: "Major" - + jobs: publish: name: ${{ matrix.taskName }} @@ -16,7 +16,6 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} CHOCOLATEY_API_KEY: ${{ secrets.CHOCOLATEY_API_KEY }} steps: - @@ -33,7 +32,8 @@ jobs: with: name: nuget path: ${{ github.workspace }}/artifacts/packages/nuget + - name: '[Publish]' shell: pwsh - run: dotnet run/publish.dll --target=Publish${{ matrix.taskName }} \ No newline at end of file + run: dotnet run/publish.dll --target=Publish${{ matrix.taskName }} diff --git a/build/publish/Tasks/PublishNuget.cs b/build/publish/Tasks/PublishNuget.cs index 59649a35af..a41002ab82 100644 --- a/build/publish/Tasks/PublishNuget.cs +++ b/build/publish/Tasks/PublishNuget.cs @@ -1,3 +1,5 @@ +using System.Net.Http.Headers; +using System.Text.Json; using Cake.Common.Tools.DotNet.NuGet.Push; using Common.Utilities; @@ -10,7 +12,7 @@ public class PublishNuget : FrostingTask; [TaskName(nameof(PublishNugetInternal))] [TaskDescription("Publish nuget packages")] -public class PublishNugetInternal : FrostingTask +public class PublishNugetInternal : AsyncFrostingTask { public override bool ShouldRun(BuildContext context) { @@ -21,7 +23,7 @@ public override bool ShouldRun(BuildContext context) return shouldRun; } - public override void Run(BuildContext context) + public override async Task RunAsync(BuildContext context) { // publish to github packages for commits on main and on original repo if (context.IsInternalPreRelease) @@ -32,22 +34,26 @@ public override void Run(BuildContext context) { throw new InvalidOperationException("Could not resolve NuGet GitHub Packages API key."); } + PublishToNugetRepo(context, apiKey, Constants.GithubPackagesUrl); context.EndGroup(); } + // publish to nuget.org for tagged releases if (context.IsStableRelease || context.IsTaggedPreRelease) { context.StartGroup("Publishing to Nuget.org"); - var apiKey = context.Credentials?.Nuget?.ApiKey; + var apiKey = await GetNugetApiKey(context); if (string.IsNullOrEmpty(apiKey)) { throw new InvalidOperationException("Could not resolve NuGet org API key."); } + PublishToNugetRepo(context, apiKey, Constants.NugetOrgUrl); context.EndGroup(); } } + private static void PublishToNugetRepo(BuildContext context, string apiKey, string apiUrl) { ArgumentNullException.ThrowIfNull(context.Version); @@ -55,12 +61,120 @@ private static void PublishToNugetRepo(BuildContext context, string apiKey, stri foreach (var (packageName, filePath, _) in context.Packages.Where(x => !x.IsChocoPackage)) { context.Information($"Package {packageName}, version {nugetVersion} is being published."); - context.DotNetNuGetPush(filePath.FullPath, new DotNetNuGetPushSettings - { - ApiKey = apiKey, - Source = apiUrl, - SkipDuplicate = true - }); + context.DotNetNuGetPush(filePath.FullPath, + new DotNetNuGetPushSettings + { + ApiKey = apiKey, + Source = apiUrl, + SkipDuplicate = true + }); + } + } + + private static async Task GetNugetApiKey(BuildContext context) + { + try + { + var oidcToken = await GetGitHubOidcToken(context); + var apiKey = await ExchangeOidcTokenForApiKey(oidcToken); + + context.Information($"Successfully exchanged OIDC token for NuGet API key."); + return apiKey; + } + catch (HttpRequestException ex) + { + context.Error($"Network error while retrieving NuGet API key: {ex.Message}"); + return null; } + catch (InvalidOperationException ex) + { + context.Error($"Invalid operation while retrieving NuGet API key: {ex.Message}"); + return null; + } + catch (JsonException ex) + { + context.Error($"JSON parsing error while retrieving NuGet API key: {ex.Message}"); + return null; + } + } + + private static async Task GetGitHubOidcToken(BuildContext context) + { + const string nugetAudience = "https://www.nuget.org"; + + var oidcRequestToken = context.Environment.GetEnvironmentVariable("ACTIONS_ID_TOKEN_REQUEST_TOKEN"); + var oidcRequestUrl = context.Environment.GetEnvironmentVariable("ACTIONS_ID_TOKEN_REQUEST_URL"); + + if (string.IsNullOrEmpty(oidcRequestToken) || string.IsNullOrEmpty(oidcRequestUrl)) + throw new InvalidOperationException("Missing GitHub OIDC request environment variables."); + + var tokenUrl = $"{oidcRequestUrl}&audience={Uri.EscapeDataString(nugetAudience)}"; + context.Information($"Requesting GitHub OIDC token from: {tokenUrl}"); + + using var http = new HttpClient(); + http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", oidcRequestToken); + + var responseMessage = await http.GetAsync(tokenUrl); + var tokenBody = await responseMessage.Content.ReadAsStringAsync(); + + if (!responseMessage.IsSuccessStatusCode) + throw new Exception("Failed to retrieve OIDC token from GitHub."); + + using var tokenDoc = JsonDocument.Parse(tokenBody); + return ParseJsonProperty(tokenDoc, "value", "Failed to retrieve OIDC token from GitHub."); + } + + private static async Task ExchangeOidcTokenForApiKey(string oidcToken) + { + const string nugetUsername = "gittoolsbot"; + const string nugetTokenServiceUrl = "https://www.nuget.org/api/v2/token"; + + var requestBody = JsonSerializer.Serialize(new { username = nugetUsername, tokenType = "ApiKey" }); + + using var tokenServiceHttp = new HttpClient(); + tokenServiceHttp.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", oidcToken); + tokenServiceHttp.DefaultRequestHeaders.UserAgent.ParseAdd("nuget/login-action"); + using var content = new StringContent(requestBody, Encoding.UTF8, "application/json"); + + var responseMessage = await tokenServiceHttp.PostAsync(nugetTokenServiceUrl, content); + var exchangeBody = await responseMessage.Content.ReadAsStringAsync(); + + if (!responseMessage.IsSuccessStatusCode) + { + var errorMessage = BuildErrorMessage((int)responseMessage.StatusCode, exchangeBody); + throw new Exception(errorMessage); + } + + using var respDoc = JsonDocument.Parse(exchangeBody); + return ParseJsonProperty(respDoc, "apiKey", "Response did not contain \"apiKey\"."); + } + + private static string ParseJsonProperty(JsonDocument document, string propertyName, string errorMessage) + { + if (!document.RootElement.TryGetProperty(propertyName, out var property) || + property.ValueKind != JsonValueKind.String) + throw new Exception(errorMessage); + + return property.GetString() ?? throw new Exception(errorMessage); + } + + private static string BuildErrorMessage(int statusCode, string responseBody) + { + var errorMessage = $"Token exchange failed ({statusCode})"; + try + { + using var errDoc = JsonDocument.Parse(responseBody); + errorMessage += + errDoc.RootElement.TryGetProperty("error", out var errProp) && + errProp.ValueKind == JsonValueKind.String + ? $": {errProp.GetString()}" + : $": {responseBody}"; + } + catch (Exception) + { + errorMessage += $": {responseBody}"; + } + + return errorMessage; } } From a831cc0bbdb179fd78d48cf5f392e0c8aec4c447 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Nov 2025 21:31:38 +0000 Subject: [PATCH 004/358] (deps): Bump the nunit group with 1 update Bumps NUnit.Analyzers to 4.11.2 --- updated-dependencies: - dependency-name: NUnit.Analyzers dependency-version: 4.11.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: nunit - dependency-name: NUnit.Analyzers dependency-version: 4.11.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nunit ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 82264a6539..5a608208f2 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -16,7 +16,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive From 514e2be739a72028aa43fedd3c909613d061a697 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 2 Nov 2025 23:22:12 +0100 Subject: [PATCH 005/358] #4725 - adds workflow to update GitTools Actions adds workflow to update GitTools Actions in Actions repository when a new release is published. --- .github/workflows/gittools-actions.yml | 43 ++++++++++++++++++++++++++ build/CI.slnx | 1 + 2 files changed, 44 insertions(+) create mode 100644 .github/workflows/gittools-actions.yml diff --git a/.github/workflows/gittools-actions.yml b/.github/workflows/gittools-actions.yml new file mode 100644 index 0000000000..fd87d2b1a5 --- /dev/null +++ b/.github/workflows/gittools-actions.yml @@ -0,0 +1,43 @@ +name: Update GitTools Actions + +on: + workflow_dispatch: + inputs: + tag-name: + description: 'Tag name to use for the release' + required: true + repository_dispatch: + types: [ publish-release ] + +defaults: + run: + shell: pwsh + +permissions: + contents: read + +jobs: + homebrew: + permissions: + contents: none + name: Update GitTools Actions + runs-on: ubuntu-24.04 + steps: + - + name: Get version + id: get-version + shell: pwsh + run: | + $version = "${{ github.event.client_payload.tag }}" + if ($version -eq "") { + $version = "${{ github.event.inputs.tag-name }}" + } + "version=$version" >> $env:GITHUB_OUTPUT + - + uses: peter-evans/repository-dispatch@v4 + name: Update GitTools Actions + with: + token: ${{ secrets.RELEASE_GITHUB_TOKEN }} + repository: ${{ github.repository_owner }}/actions + event-type: gitversion-update-examples + client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "tag": "${{ steps.get-version.outputs.version }}"}' diff --git a/build/CI.slnx b/build/CI.slnx index 15846bf628..3e1f7caf72 100644 --- a/build/CI.slnx +++ b/build/CI.slnx @@ -40,6 +40,7 @@ + From 1d991c1dcc7ee9e72d5a454ed4c14293f29a1fd9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Nov 2025 12:53:35 +0000 Subject: [PATCH 006/358] (deps): Bump the analyzers group with 1 update Bumps NUnit.Analyzers from 4.10.0 to 4.11.2 --- updated-dependencies: - dependency-name: NUnit.Analyzers dependency-version: 4.11.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: analyzers ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index bb53b8488e..12e32ad7b6 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -34,7 +34,7 @@ - + From 47172b948e06ed380023467bb11cdcc58d1873e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Nov 2025 13:26:16 +0000 Subject: [PATCH 007/358] (deps): Bump the serilog group with 1 update Bumps Serilog.Sinks.Console from 6.1.0 to 6.1.1 --- updated-dependencies: - dependency-name: Serilog.Sinks.Console dependency-version: 6.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: serilog ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 5a608208f2..f311aa21e1 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -27,7 +27,7 @@ - + From dd48544a1f11d680ea31fa6a4623ca9b5ed3457a Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 3 Nov 2025 14:38:16 +0100 Subject: [PATCH 008/358] Refactors SequenceDiagram and related methods Replaces direct field access with a public property `DiagramBuilder` in `SequenceDiagram`. Updates related methods to use this property for better encapsulation and maintainability. --- .../RepositoryFixtureExtensions.cs | 24 ++--------- .../Fixtures/SequenceDiagram.cs | 41 ++++++++++--------- 2 files changed, 24 insertions(+), 41 deletions(-) diff --git a/src/GitVersion.Core.Tests/IntegrationTests/RepositoryFixtureExtensions.cs b/src/GitVersion.Core.Tests/IntegrationTests/RepositoryFixtureExtensions.cs index 79706e422a..fda6a851e3 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/RepositoryFixtureExtensions.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/RepositoryFixtureExtensions.cs @@ -7,33 +7,15 @@ internal static class RepositoryFixtureExtensions public static void MakeACommit(this RepositoryFixtureBase fixture, string commitMsg) { fixture.Repository.MakeACommit(commitMsg); - var diagramBuilder = (StringBuilder?)typeof(SequenceDiagram) - .GetField("diagramBuilder", BindingFlags.Instance | BindingFlags.NonPublic) - ?.GetValue(fixture.SequenceDiagram); - var participant = GetParticipant(fixture.Repository.Head.FriendlyName); - if (participant != null) - { - AddTheCommitMessage(fixture, commitMsg, diagramBuilder, participant); - } - - string? GetParticipant(string participantName) => - (string?)typeof(SequenceDiagram).GetMethod("GetParticipant", BindingFlags.Instance | BindingFlags.NonPublic) - ?.Invoke(fixture.SequenceDiagram, - [ - participantName - ]); - } - - private static void AddTheCommitMessage(RepositoryFixtureBase fixture, string commitMsg, StringBuilder? diagramBuilder, string participant) - { + var participant = fixture.SequenceDiagram.GetParticipant(fixture.Repository.Head.FriendlyName); if (commitMsg.Length < 40) { - diagramBuilder?.AppendLineFormat("{0} -> {0}: Commit '{1}'", participant, commitMsg); + fixture.SequenceDiagram.DiagramBuilder.AppendLineFormat("{0} -> {0}: Commit '{1}'", participant, commitMsg); } else { - var formattedCommitMsg = string.Join(System.Environment.NewLine, $"Commit '{commitMsg}'".SplitIntoLines(60)); + var formattedCommitMsg = string.Join(SysEnv.NewLine, $"Commit '{commitMsg}'".SplitIntoLines(60)); fixture.SequenceDiagram.NoteOver(formattedCommitMsg, participant); } } diff --git a/src/GitVersion.Testing/Fixtures/SequenceDiagram.cs b/src/GitVersion.Testing/Fixtures/SequenceDiagram.cs index 35e73d21cf..d56e7688e8 100644 --- a/src/GitVersion.Testing/Fixtures/SequenceDiagram.cs +++ b/src/GitVersion.Testing/Fixtures/SequenceDiagram.cs @@ -9,31 +9,32 @@ namespace GitVersion.Testing; public class SequenceDiagram { private readonly Dictionary participants = []; - private readonly StringBuilder diagramBuilder; /// /// Initializes a new instance of the class. /// public SequenceDiagram() { - this.diagramBuilder = new StringBuilder(); - this.diagramBuilder.AppendLine("@startuml"); + this.DiagramBuilder = new StringBuilder(); + this.DiagramBuilder.AppendLine("@startuml"); } + public StringBuilder DiagramBuilder { get; } + /// /// Activates a branch/participant in the sequence diagram /// - public void Activate(string branch) => this.diagramBuilder.AppendLineFormat("activate {0}", GetParticipant(branch)); + public void Activate(string branch) => this.DiagramBuilder.AppendLineFormat("activate {0}", GetParticipant(branch)); /// /// Deactivates a branch/participant in the sequence diagram /// - public void Deactivate(string branch) => this.diagramBuilder.AppendLineFormat("deactivate {0}", GetParticipant(branch)); + public void Deactivate(string branch) => this.DiagramBuilder.AppendLineFormat("deactivate {0}", GetParticipant(branch)); /// /// Destroys a branch/participant in the sequence diagram /// - public void Destroy(string branch) => this.diagramBuilder.AppendLineFormat("destroy {0}", GetParticipant(branch)); + public void Destroy(string branch) => this.DiagramBuilder.AppendLineFormat("destroy {0}", GetParticipant(branch)); /// /// Creates a participant in the sequence diagram @@ -43,21 +44,21 @@ public void Participant(string participant, string? @as = null) var cleanParticipant = ParticipantSanitizer.SanitizeParticipant(@as ?? participant); this.participants.Add(participant, cleanParticipant); if (participant == cleanParticipant) - this.diagramBuilder.AppendLineFormat("participant {0}", participant); + this.DiagramBuilder.AppendLineFormat("participant {0}", participant); else - this.diagramBuilder.AppendLineFormat("participant \"{0}\" as {1}", participant, cleanParticipant); + this.DiagramBuilder.AppendLineFormat("participant \"{0}\" as {1}", participant, cleanParticipant); } /// /// Appends a divider with specified text to the sequence diagram /// - public void Divider(string text) => this.diagramBuilder.AppendLineFormat("== {0} ==", text); + public void Divider(string text) => this.DiagramBuilder.AppendLineFormat("== {0} ==", text); /// /// Appends a note over one or many participants to the sequence diagram /// public void NoteOver(string noteText, string startParticipant, string? endParticipant = null, string? prefix = null, string? color = null) => - this.diagramBuilder.AppendLineFormat( + this.DiagramBuilder.AppendLineFormat( prefix + """ note over {0}{1}{2} {3} @@ -71,7 +72,7 @@ end note /// /// Appends applying a tag to the specified branch/participant to the sequence diagram /// - public void ApplyTag(string tag, string toBranch) => this.diagramBuilder.AppendLineFormat("{0} -> {0}: tag {1}", GetParticipant(toBranch), tag); + public void ApplyTag(string tag, string toBranch) => this.DiagramBuilder.AppendLineFormat("{0} -> {0}: tag {1}", GetParticipant(toBranch), tag); /// /// Appends branching from a branch to another branch, @as can override the participant name @@ -80,11 +81,11 @@ public void BranchTo(string branchName, string currentName, string? @as) { if (!this.participants.ContainsKey(branchName)) { - this.diagramBuilder.Append("create "); + this.DiagramBuilder.Append("create "); Participant(branchName, @as); } - this.diagramBuilder.AppendLineFormat( + this.DiagramBuilder.AppendLineFormat( "{0} -> {1}: branch from {2}", GetParticipant(currentName), GetParticipant(branchName), currentName); @@ -97,32 +98,32 @@ public void BranchToFromTag(string branchName, string fromTag, string onBranch, { if (!this.participants.ContainsKey(branchName)) { - this.diagramBuilder.Append("create "); + this.DiagramBuilder.Append("create "); Participant(branchName, @as); } - this.diagramBuilder.AppendLineFormat("{0} -> {1}: branch from tag ({2})", GetParticipant(onBranch), GetParticipant(branchName), fromTag); + this.DiagramBuilder.AppendLineFormat("{0} -> {1}: branch from tag ({2})", GetParticipant(onBranch), GetParticipant(branchName), fromTag); } /// /// Appends a commit on the target participant/branch to the sequence diagram /// - public void MakeACommit(string toParticipant) => this.diagramBuilder.AppendLineFormat("{0} -> {0}: commit", GetParticipant(toParticipant)); + public void MakeACommit(string toParticipant) => this.DiagramBuilder.AppendLineFormat("{0} -> {0}: commit", GetParticipant(toParticipant)); /// /// Append a merge to the sequence diagram /// - public void Merge(string from, string to) => this.diagramBuilder.AppendLineFormat("{0} -> {1}: merge", GetParticipant(from), GetParticipant(to)); + public void Merge(string from, string to) => this.DiagramBuilder.AppendLineFormat("{0} -> {1}: merge", GetParticipant(from), GetParticipant(to)); - private string GetParticipant(string branch) => this.participants.GetValueOrDefault(branch, branch); + public string GetParticipant(string branch) => this.participants.GetValueOrDefault(branch, branch); /// /// Ends the sequence diagram /// - public void End() => this.diagramBuilder.AppendLine("@enduml"); + public void End() => this.DiagramBuilder.AppendLine("@enduml"); /// /// returns the plantUML representation of the Sequence Diagram /// - public string GetDiagram() => this.diagramBuilder.ToString(); + public string GetDiagram() => this.DiagramBuilder.ToString(); } From 692e093a005da4aaba3d3f97dd949cb451283a5a Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 3 Nov 2025 16:24:46 +0100 Subject: [PATCH 009/358] Moves GitTestExtensions to Extensions namespace Relocates `GitTestExtensions` and other related classes to the `GitVersion.Testing.Extensions` namespace for consistent organization. Updates all references and removes the unused `RepositoryFixtureExtensions` class. --- .../JsonOutputOnBuildServerTest.cs | 1 + .../PullRequestInBuildAgentTest.cs | 1 + .../TagCheckoutInBuildAgentTests.cs | 1 + .../Core/GitVersionExecutorTests.cs | 1 + .../GitRepositoryTestingExtensions.cs | 1 + .../BranchWithoutCommitScenarios.cs | 1 + ...FeatureBranchFromAReleaseBranchScenario.cs | 1 + .../IntegrationTests/DevelopScenarios.cs | 1 + .../IntegrationTests/DocumentationSamples.cs | 1 + .../DocumentationSamplesForGitFlow.cs | 1 + .../DocumentationSamplesForGitHubFlow.cs | 1 + .../FeatureBranchScenarios.cs | 1 + .../IntegrationTests/HotfixBranchScenarios.cs | 1 + .../IntegrationTests/IgnoreCommitScenarios.cs | 1 + .../IntegrationTests/MainScenarios.cs | 1 + .../MainlineDevelopmentScenarios.cs | 1 + .../IntegrationTests/OtherBranchScenarios.cs | 1 + .../IntegrationTests/OtherScenarios.cs | 1 + .../IntegrationTests/PullRequestScenarios.cs | 1 + .../ReleaseBranchScenarios.cs | 1 + .../RemoteRepositoryScenarios.cs | 1 + .../RepositoryFixtureExtensions.cs | 22 ------------------- .../SupportBranchScenarios.cs | 1 + .../SwitchingToGitFlowScenarios.cs | 1 + .../IntegrationTests/TagCheckoutScenarios.cs | 1 + .../VersionBumpingScenarios.cs | 1 + .../IntegrationTests/WorktreeScenarios.cs | 1 + .../NextVersionCalculatorTests.cs | 1 - .../Tasks/TestTaskBase.cs | 1 + .../Output/FormatArgumentTests.cs | 1 + .../{ => Extensions}/GitTestExtensions.cs | 2 +- .../Extensions}/StringExtensions.cs | 2 +- .../Fixtures/BaseGitFlowRepositoryFixture.cs | 1 + .../Fixtures/RepositoryFixtureBase.cs | 18 +++++++++++++++ 34 files changed, 49 insertions(+), 25 deletions(-) delete mode 100644 src/GitVersion.Core.Tests/IntegrationTests/RepositoryFixtureExtensions.cs rename src/GitVersion.Testing/{ => Extensions}/GitTestExtensions.cs (98%) rename src/{GitVersion.Core.Tests/IntegrationTests => GitVersion.Testing/Extensions}/StringExtensions.cs (96%) diff --git a/src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs b/src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs index 30d6d48108..d9f8f1a3ec 100644 --- a/src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs +++ b/src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs @@ -1,6 +1,7 @@ using GitVersion.Agents; using GitVersion.Core.Tests; using GitVersion.Helpers; +using GitVersion.Testing.Extensions; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs b/src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs index c517d19aba..c0dbf74ee0 100644 --- a/src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs +++ b/src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs @@ -4,6 +4,7 @@ using GitVersion.Git; using GitVersion.Helpers; using GitVersion.Output; +using GitVersion.Testing.Extensions; using LibGit2Sharp; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs b/src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs index fc31fa4a7d..a62df0f342 100644 --- a/src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs +++ b/src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs @@ -1,6 +1,7 @@ using GitVersion.Agents; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs index b36c7ce0e7..e67f847b45 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs @@ -6,6 +6,7 @@ using GitVersion.Git; using GitVersion.Helpers; using GitVersion.Logging; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation.Caching; using LibGit2Sharp; using Microsoft.Extensions.DependencyInjection; diff --git a/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs b/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs index e5d86f1681..74043662a3 100644 --- a/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs @@ -5,6 +5,7 @@ using GitVersion.Git; using GitVersion.Helpers; using GitVersion.OutputVariables; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; using Microsoft.Extensions.DependencyInjection; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/BranchWithoutCommitScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/BranchWithoutCommitScenarios.cs index 9735e16114..d28ddad75d 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/BranchWithoutCommitScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/BranchWithoutCommitScenarios.cs @@ -1,4 +1,5 @@ using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/CreatingAFeatureBranchFromAReleaseBranchScenario.cs b/src/GitVersion.Core.Tests/IntegrationTests/CreatingAFeatureBranchFromAReleaseBranchScenario.cs index 6d8a75983a..bf2341ea9e 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/CreatingAFeatureBranchFromAReleaseBranchScenario.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/CreatingAFeatureBranchFromAReleaseBranchScenario.cs @@ -1,4 +1,5 @@ using GitVersion.Configuration; +using GitVersion.Testing.Extensions; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs index 7b3908a2dc..c1bf4b9a42 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs @@ -1,5 +1,6 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs index 71160f3a31..b3d45dc904 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs @@ -1,4 +1,5 @@ using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitFlow.cs b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitFlow.cs index 1fc0cd9df7..fadd1a4db5 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitFlow.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitFlow.cs @@ -1,4 +1,5 @@ using GitVersion.Configuration; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitHubFlow.cs b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitHubFlow.cs index cba4301309..5ce48685e8 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitHubFlow.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitHubFlow.cs @@ -1,4 +1,5 @@ using GitVersion.Configuration; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/FeatureBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/FeatureBranchScenarios.cs index 05cd9a46cb..c904627794 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/FeatureBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/FeatureBranchScenarios.cs @@ -1,5 +1,6 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/HotfixBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/HotfixBranchScenarios.cs index 8bd468453a..bda5d9b777 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/HotfixBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/HotfixBranchScenarios.cs @@ -1,5 +1,6 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/IgnoreCommitScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/IgnoreCommitScenarios.cs index a789867705..fcb1cc9b02 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/IgnoreCommitScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/IgnoreCommitScenarios.cs @@ -1,5 +1,6 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs index 86f6280cd8..1bac81dc8e 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs @@ -1,5 +1,6 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs index 2ac097c7c9..898d649a66 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs @@ -1,5 +1,6 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs index 8412d0b015..52fdcb1862 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs @@ -1,5 +1,6 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs index 39c2c3ba45..0c847cae1c 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs @@ -4,6 +4,7 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; using Microsoft.Extensions.DependencyInjection; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/PullRequestScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/PullRequestScenarios.cs index 683d3dbec7..53d0dfb117 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/PullRequestScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/PullRequestScenarios.cs @@ -1,5 +1,6 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/ReleaseBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/ReleaseBranchScenarios.cs index 8437c3fd33..9d8bb5385e 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/ReleaseBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/ReleaseBranchScenarios.cs @@ -1,5 +1,6 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs index af76ec7acd..f550df24c8 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs @@ -1,5 +1,6 @@ using GitVersion.Agents; using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/RepositoryFixtureExtensions.cs b/src/GitVersion.Core.Tests/IntegrationTests/RepositoryFixtureExtensions.cs deleted file mode 100644 index fda6a851e3..0000000000 --- a/src/GitVersion.Core.Tests/IntegrationTests/RepositoryFixtureExtensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -using GitVersion.Extensions; - -namespace GitVersion.Core.Tests.IntegrationTests; - -internal static class RepositoryFixtureExtensions -{ - public static void MakeACommit(this RepositoryFixtureBase fixture, string commitMsg) - { - fixture.Repository.MakeACommit(commitMsg); - - var participant = fixture.SequenceDiagram.GetParticipant(fixture.Repository.Head.FriendlyName); - if (commitMsg.Length < 40) - { - fixture.SequenceDiagram.DiagramBuilder.AppendLineFormat("{0} -> {0}: Commit '{1}'", participant, commitMsg); - } - else - { - var formattedCommitMsg = string.Join(SysEnv.NewLine, $"Commit '{commitMsg}'".SplitIntoLines(60)); - fixture.SequenceDiagram.NoteOver(formattedCommitMsg, participant); - } - } -} diff --git a/src/GitVersion.Core.Tests/IntegrationTests/SupportBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/SupportBranchScenarios.cs index 284077f656..45c0b672e2 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/SupportBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/SupportBranchScenarios.cs @@ -1,5 +1,6 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/SwitchingToGitFlowScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/SwitchingToGitFlowScenarios.cs index 8a5cb57179..d634a722fd 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/SwitchingToGitFlowScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/SwitchingToGitFlowScenarios.cs @@ -1,4 +1,5 @@ using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/TagCheckoutScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/TagCheckoutScenarios.cs index fbb56eb558..9e1cdfae04 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/TagCheckoutScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/TagCheckoutScenarios.cs @@ -1,4 +1,5 @@ using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/VersionBumpingScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/VersionBumpingScenarios.cs index 459fc5ef80..aba3dff795 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/VersionBumpingScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/VersionBumpingScenarios.cs @@ -1,5 +1,6 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; +using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs index 89cfd4c2ce..10509ebca2 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs @@ -1,6 +1,7 @@ using System.IO.Abstractions; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; using Microsoft.Extensions.DependencyInjection; diff --git a/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs index eb6340389b..8078135ed0 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; using LibGit2Sharp; using Microsoft.Extensions.DependencyInjection; diff --git a/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs b/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs index c0c7999983..91246f139a 100644 --- a/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs +++ b/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs @@ -4,6 +4,7 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.MsBuild.Tests.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; using Microsoft.Build.Utilities.ProjectCreation; using Microsoft.Extensions.DependencyInjection; diff --git a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs index b93fdec479..20c4f685c2 100644 --- a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs +++ b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs @@ -1,6 +1,7 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Logging; using GitVersion.Output.OutputGenerator; +using GitVersion.Testing.Extensions; using LibGit2Sharp; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; diff --git a/src/GitVersion.Testing/GitTestExtensions.cs b/src/GitVersion.Testing/Extensions/GitTestExtensions.cs similarity index 98% rename from src/GitVersion.Testing/GitTestExtensions.cs rename to src/GitVersion.Testing/Extensions/GitTestExtensions.cs index be1a0518cf..711d032fac 100644 --- a/src/GitVersion.Testing/GitTestExtensions.cs +++ b/src/GitVersion.Testing/Extensions/GitTestExtensions.cs @@ -2,7 +2,7 @@ using GitVersion.Testing.Internal; using LibGit2Sharp; -namespace GitVersion.Testing; +namespace GitVersion.Testing.Extensions; public static class GitTestExtensions { diff --git a/src/GitVersion.Core.Tests/IntegrationTests/StringExtensions.cs b/src/GitVersion.Testing/Extensions/StringExtensions.cs similarity index 96% rename from src/GitVersion.Core.Tests/IntegrationTests/StringExtensions.cs rename to src/GitVersion.Testing/Extensions/StringExtensions.cs index 50577f3327..1f4c15fae7 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/StringExtensions.cs +++ b/src/GitVersion.Testing/Extensions/StringExtensions.cs @@ -1,4 +1,4 @@ -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Testing.Extensions; public static class StringExtensions { diff --git a/src/GitVersion.Testing/Fixtures/BaseGitFlowRepositoryFixture.cs b/src/GitVersion.Testing/Fixtures/BaseGitFlowRepositoryFixture.cs index ebf88bf939..25a256c4ad 100644 --- a/src/GitVersion.Testing/Fixtures/BaseGitFlowRepositoryFixture.cs +++ b/src/GitVersion.Testing/Fixtures/BaseGitFlowRepositoryFixture.cs @@ -1,4 +1,5 @@ using GitVersion.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; namespace GitVersion.Testing; diff --git a/src/GitVersion.Testing/Fixtures/RepositoryFixtureBase.cs b/src/GitVersion.Testing/Fixtures/RepositoryFixtureBase.cs index be177bbf0a..805281f62e 100644 --- a/src/GitVersion.Testing/Fixtures/RepositoryFixtureBase.cs +++ b/src/GitVersion.Testing/Fixtures/RepositoryFixtureBase.cs @@ -1,4 +1,6 @@ +using GitVersion.Extensions; using GitVersion.Helpers; +using GitVersion.Testing.Extensions; using LibGit2Sharp; using Shouldly; @@ -116,6 +118,22 @@ public string MakeACommit() return commit.Sha; } + public void MakeACommit(string commitMsg) + { + Repository.MakeACommit(commitMsg); + + var participant = SequenceDiagram.GetParticipant(Repository.Head.FriendlyName); + if (commitMsg.Length < 40) + { + SequenceDiagram.DiagramBuilder.AppendLineFormat("{0} -> {0}: Commit '{1}'", participant, commitMsg); + } + else + { + var formattedCommitMsg = string.Join(SysEnv.NewLine, $"Commit '{commitMsg}'".SplitIntoLines(60)); + SequenceDiagram.NoteOver(formattedCommitMsg, participant); + } + } + /// /// Merges (no-ff) specified branch into the current HEAD of this repository /// From 1942455730c6996262cadf887f198462a799049f Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 3 Nov 2025 16:49:34 +0100 Subject: [PATCH 010/358] Removes unused `GitVersion.Core.Tests.IntegrationTests` using directives across multiple test files. --- src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs | 1 - ...hAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs | 1 - ...nchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs | 1 - ...AFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs | 1 - ...GitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs | 1 - ...bFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs | 1 - ...ithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs | 1 - ...ithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs | 1 - ...ithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs | 1 - ...WithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs | 1 - ...hOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs | 1 - ...hOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs | 1 - ...anchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs | 1 - ...ithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs | 1 - ...ithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs | 1 - ...ithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs | 1 - ...WithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs | 1 - ...hOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs | 1 - ...hOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs | 1 - ...anchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs | 1 - ...itHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs | 1 - ...anchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs | 1 - ...hWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs | 1 - ...hWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs | 1 - ...reBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs | 1 - ...ithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs | 1 - ...nariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs | 1 - ...enAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs | 1 - ...enAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs | 1 - ...enAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs | 1 - ...venAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs | 1 - ...AFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs | 1 - ...AFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs | 1 - ...w+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs | 1 - ...ow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs | 1 - ...ubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs | 1 - ...iosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs | 1 - ...Flow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs | 1 - ...tHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs | 1 - ...atureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs | 1 - ...reBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs | 1 - ...reBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs | 1 - ...HubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs | 1 - ...ithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs | 1 - ...ithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs | 1 - ...ithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs | 1 - ...WithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs | 1 - ...hOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs | 1 - ...hOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs | 1 - ...anchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs | 1 - ...ScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs | 1 - ...GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs | 1 - ...GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs | 1 - ...GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs | 1 - ...+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs | 1 - ...venAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs | 1 - ...venAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs | 1 - ...Flow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs | 1 - ...nariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs | 1 - ...ubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs | 1 - ...CommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs | 1 - ...CommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs | 1 - ...CommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs | 1 - ...oCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs | 1 - ...mmitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs | 1 - ...mmitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs | 1 - ...thTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs | 1 - ...cenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs | 1 - ...MainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs | 1 - ...MainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs | 1 - ...MainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs | 1 - ...AMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs | 1 - ...inBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs | 1 - ...inBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs | 1 - ...ivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs | 1 - ...ainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs | 1 - ...ainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs | 1 - ...ainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs | 1 - ...MainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs | 1 - ...nBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs | 1 - ...nBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs | 1 - ...venAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs | 1 - 82 files changed, 82 deletions(-) diff --git a/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs b/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs index 9e58ad8bcb..ddb91145e3 100644 --- a/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs +++ b/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.Git; using GitVersion.Logging; using Microsoft.Extensions.DependencyInjection; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs index dd9618f778..a5aea34d59 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs index 6e560d4fcd..56d0c34058 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs index 94aa15cd6d..f75a421465 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs index 40cd7b368e..be7bb20183 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs index 1e04bf98ff..056b99c67d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs index d50c5f70c7..a90ef9738e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs index a00d17cd06..6fc3e13dc1 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs index 0ad6e69527..33c97d5e47 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs index 219be0a0d1..1e6a24e164 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs index 0a5374d23d..a50bc81e5e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs index 7bf83c189f..be1880f471 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs index 97efbbf7ce..c690dd0e46 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs index 8ebc1e8f73..78aa97b4d5 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs index 2e640520c0..9e1b6010e9 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs index 3b71db21b8..a8aad4846a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs index b249171f7b..29402322b8 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs index eca7cd7cf8..7042a0de5b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs index e039a08a3b..a800029a17 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs index 2c8e51e591..34761f7368 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs index 0d4c52125e..2911b46c06 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs index d2b9587ce7..bb6df43976 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs index 36d496fc6b..2ac02b450c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs index e3a96954a6..1290e54739 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs index 854811f409..8eb4d54f3d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs index 28c9ea8f94..df008b5729 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs index 76c4839581..f6e5a175c8 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs index 25f500873d..a34be8392f 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs index aa346a999a..a19ad8435b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs index ccdf753b23..d6cc0f6172 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs index 17c7fddc99..5608425e2e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs index 0ef713c59c..5baeb6e497 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs index 1765d86cad..3bd3d3102b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs index b9f5b03937..96e26d198f 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs index 7883bb8bd2..3855ccfe24 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs index 2b190b7282..390ad6ff7f 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs index 540bde6834..fdbd50ea09 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs index d7887d9be8..0064ef1b22 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs index 18458da0f6..2a20479a76 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs index e1b1807167..aba1a51ba8 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs index d83467f733..5bfc758519 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs index 29ddbb46a8..af9c3db630 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs index 812e314d6d..d7f83c1050 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs index fbc2b8d54d..0d60fab5a2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs index f8fa228bd1..70a36e4147 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs index a174d7294b..7212125678 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs index 0007496360..6e7d47dbc8 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs index 2abdb7b357..8a47054e1c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs index 7ceb1328e3..0991ece38f 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs index 470c506735..8aeb23d1d0 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs index d9e4e761f9..a67e13abe0 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs index fe2a983797..c47702dab7 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs index c138a0a3e2..76b0fb4fde 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs index ff12dbe0ef..9dc943b1b3 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs index 31fbbf6d25..bceb3c68ee 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs index 293eee070a..480a1ea96b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs index 34ac29009d..7447f05b03 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs index 15e889503c..1888104646 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs index a5d6560d08..b54b2b2fc6 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs index fdfc174ffe..1bd610bc44 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs index c193e8470f..53482742a2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs index a657a8dfc3..9cd527578e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs index a5afd1e6aa..d0ca485f66 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs index c72d4ad348..aa877afbb3 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs index 81acd1b342..5f0f7d87c6 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs index 40dafb7ea0..6ef7888f38 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs index 54cb6d6552..678d5a89f9 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs index f4966a63cb..0edfa59d41 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs index 11e2e54c8e..245e7278d6 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs index 9227937fae..3b7118ac1a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs index fcc8754ec1..0a42808216 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs index d0e8154163..6029f50fc3 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs index 54e2b24c67..d1b906c852 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs index 55cb336422..b7893bbedf 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs index 086d5638ec..90a715db68 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs index 6e0626b22c..ac38deaa29 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs index b3f51bfa51..60003490be 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs index 1406795ae2..e9472a0dfa 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs index e1cea97f72..6500ab1274 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs index c07bcc22e4..3c43764423 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs index c64ad215be..3c0d840471 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs index 3be1bc7ecc..2da090eafe 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs @@ -1,6 +1,5 @@ using GitVersion.Configuration; using GitVersion.Core.Tests; -using GitVersion.Core.Tests.IntegrationTests; using GitVersion.VersionCalculation; namespace GitVersion.Core.Mainline; From aa56e4dbfaef48936ffafd668e4e73f455a3b32d Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 5 Nov 2025 22:55:26 +0100 Subject: [PATCH 011/358] Updates event type for release publishing Changes the event type to trigger on release publishing to ensure proper GitVersion updates. --- .github/workflows/gittools-actions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gittools-actions.yml b/.github/workflows/gittools-actions.yml index fd87d2b1a5..8d5bcd04eb 100644 --- a/.github/workflows/gittools-actions.yml +++ b/.github/workflows/gittools-actions.yml @@ -39,5 +39,5 @@ jobs: with: token: ${{ secrets.RELEASE_GITHUB_TOKEN }} repository: ${{ github.repository_owner }}/actions - event-type: gitversion-update-examples + event-type: gitversion-release-published client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "tag": "${{ steps.get-version.outputs.version }}"}' From 3a7e6557d2bf6dd18eca1c3bd7cd20fd792f0c3f Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 5 Nov 2025 23:38:22 +0100 Subject: [PATCH 012/358] uses nuget api key from credentials Uses the NuGet API key from the credentials configuration. --- .github/workflows/_publish.yml | 1 + build/publish/Tasks/PublishNuget.cs | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index 79e8b87583..6f73aa4bc7 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -16,6 +16,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} CHOCOLATEY_API_KEY: ${{ secrets.CHOCOLATEY_API_KEY }} steps: - diff --git a/build/publish/Tasks/PublishNuget.cs b/build/publish/Tasks/PublishNuget.cs index a41002ab82..28b177f0d7 100644 --- a/build/publish/Tasks/PublishNuget.cs +++ b/build/publish/Tasks/PublishNuget.cs @@ -43,7 +43,7 @@ public override async Task RunAsync(BuildContext context) if (context.IsStableRelease || context.IsTaggedPreRelease) { context.StartGroup("Publishing to Nuget.org"); - var apiKey = await GetNugetApiKey(context); + var apiKey = context.Credentials?.Nuget?.ApiKey; if (string.IsNullOrEmpty(apiKey)) { throw new InvalidOperationException("Could not resolve NuGet org API key."); @@ -52,6 +52,8 @@ public override async Task RunAsync(BuildContext context) PublishToNugetRepo(context, apiKey, Constants.NugetOrgUrl); context.EndGroup(); } + + await Task.CompletedTask; } private static void PublishToNugetRepo(BuildContext context, string apiKey, string apiUrl) From cdec115abe31286fd4548e9c3fdacef3a76c06a2 Mon Sep 17 00:00:00 2001 From: gittools-bot Date: Wed, 5 Nov 2025 23:05:42 +0000 Subject: [PATCH 013/358] Mark public API as shipped --- src/GitVersion.Core/PublicAPI.Shipped.txt | 5 +++++ src/GitVersion.Core/PublicAPI.Unshipped.txt | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index dfdedf515b..9295c20fc0 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -28,6 +28,7 @@ GitVersion.Common.IRepositoryStore.FindMergeBase(GitVersion.Git.IBranch? branch, GitVersion.Common.IRepositoryStore.FindMergeBase(GitVersion.Git.ICommit! commit, GitVersion.Git.ICommit! mainlineTip) -> GitVersion.Git.ICommit? GitVersion.Common.IRepositoryStore.GetBranchesContainingCommit(GitVersion.Git.ICommit! commit, System.Collections.Generic.IEnumerable? branches = null, bool onlyTrackedBranches = false) -> System.Collections.Generic.IEnumerable! GitVersion.Common.IRepositoryStore.GetCommitLog(GitVersion.Git.ICommit? baseVersionSource, GitVersion.Git.ICommit! currentCommit, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> System.Collections.Generic.IReadOnlyList! +GitVersion.Common.IRepositoryStore.GetCommitsReacheableFrom(GitVersion.Git.ICommit! commit, GitVersion.Git.IBranch! branch) -> System.Collections.Generic.IReadOnlyList! GitVersion.Common.IRepositoryStore.GetCommitsReacheableFromHead(GitVersion.Git.ICommit? headCommit, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> System.Collections.Generic.IReadOnlyList! GitVersion.Common.IRepositoryStore.GetCurrentCommit(GitVersion.Git.IBranch! currentBranch, string? commitId, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> GitVersion.Git.ICommit? GitVersion.Common.IRepositoryStore.GetForwardMerge(GitVersion.Git.ICommit? commitToFindCommonBase, GitVersion.Git.ICommit? findMergeBase) -> GitVersion.Git.ICommit? @@ -220,8 +221,10 @@ GitVersion.Git.IBranchCollection.this[string! name].get -> GitVersion.Git.IBranc GitVersion.Git.IBranchCollection.UpdateTrackedBranch(GitVersion.Git.IBranch! branch, string! remoteTrackingReferenceName) -> void GitVersion.Git.ICommit GitVersion.Git.ICommit.DiffPaths.get -> System.Collections.Generic.IReadOnlyList! +GitVersion.Git.ICommit.Id.get -> GitVersion.Git.IObjectId! GitVersion.Git.ICommit.Message.get -> string! GitVersion.Git.ICommit.Parents.get -> System.Collections.Generic.IReadOnlyList! +GitVersion.Git.ICommit.Sha.get -> string! GitVersion.Git.ICommit.When.get -> System.DateTimeOffset GitVersion.Git.ICommitCollection GitVersion.Git.ICommitCollection.GetCommitsPriorTo(System.DateTimeOffset olderThan) -> System.Collections.Generic.IEnumerable! @@ -235,6 +238,7 @@ GitVersion.Git.IGitRepository.Head.get -> GitVersion.Git.IBranch! GitVersion.Git.IGitRepository.IsHeadDetached.get -> bool GitVersion.Git.IGitRepository.IsShallow.get -> bool GitVersion.Git.IGitRepository.Path.get -> string! +GitVersion.Git.IGitRepository.References.get -> GitVersion.Git.IReferenceCollection! GitVersion.Git.IGitRepository.Remotes.get -> GitVersion.Git.IRemoteCollection! GitVersion.Git.IGitRepository.Tags.get -> GitVersion.Git.ITagCollection! GitVersion.Git.IGitRepository.UncommittedChangesCount() -> int @@ -364,6 +368,7 @@ GitVersion.IGitPreparer.Prepare() -> void GitVersion.IGitVersionCalculateTool GitVersion.IGitVersionCalculateTool.CalculateVersionVariables() -> GitVersion.OutputVariables.GitVersionVariables! GitVersion.IGitVersionContextFactory +GitVersion.IGitVersionContextFactory.Create() -> GitVersion.GitVersionContext! GitVersion.IGitVersionModule GitVersion.IGitVersionModule.FindAllDerivedTypes(System.Reflection.Assembly? assembly) -> System.Collections.Generic.IEnumerable! GitVersion.IGitVersionModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index 6d147e0548..7dc5c58110 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -1,6 +1 @@ #nullable enable -GitVersion.Common.IRepositoryStore.GetCommitsReacheableFrom(GitVersion.Git.ICommit! commit, GitVersion.Git.IBranch! branch) -> System.Collections.Generic.IReadOnlyList! -GitVersion.Git.ICommit.Id.get -> GitVersion.Git.IObjectId! -GitVersion.Git.ICommit.Sha.get -> string! -GitVersion.Git.IGitRepository.References.get -> GitVersion.Git.IReferenceCollection! -GitVersion.IGitVersionContextFactory.Create() -> GitVersion.GitVersionContext! From f9f8edb76ded37ce2c747c30958fddeace1cb1a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 18:25:17 +0000 Subject: [PATCH 014/358] (deps): Bump the microsoft group with 12 updates Bumps Microsoft.Extensions.Configuration.CommandLine from 9.0.10 to 10.0.0 Bumps Microsoft.Extensions.DependencyInjection from 9.0.10 to 10.0.0 Bumps Microsoft.Extensions.DependencyInjection.Abstractions from 9.0.10 to 10.0.0 Bumps Microsoft.Extensions.FileSystemGlobbing from 9.0.10 to 10.0.0 Bumps Microsoft.Extensions.Hosting from 9.0.10 to 10.0.0 Bumps Microsoft.Extensions.Logging.Abstractions from 9.0.10 to 10.0.0 Bumps Microsoft.Extensions.Options from 9.0.10 to 10.0.0 Bumps Microsoft.NET.Test.Sdk from 18.0.0 to 18.0.1 Bumps System.Collections.Immutable from 9.0.10 to 10.0.0 Bumps System.CommandLine from 2.0.0-rc.2.25502.107 to 2.0.0 Bumps System.Reflection.Metadata from 9.0.10 to 10.0.0 Bumps System.Text.Json from 9.0.10 to 10.0.0 --- updated-dependencies: - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.Extensions.Logging.Abstractions dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.CommandLine dependency-version: 2.0.0 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.Extensions.Configuration.CommandLine dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.Extensions.FileSystemGlobbing dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.Extensions.Hosting dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.Extensions.Options dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Collections.Immutable dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: System.Reflection.Metadata dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 10 +++++----- .../GitVersion.Core/GitVersion.Core.csproj | 1 + src/Directory.Packages.props | 20 +++++++++---------- .../GitVersion.Testing.csproj | 1 + 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index f311aa21e1..8c56f4a969 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -12,9 +12,9 @@ - - - + + + all @@ -30,8 +30,8 @@ - + - + \ No newline at end of file diff --git a/new-cli/GitVersion.Core/GitVersion.Core.csproj b/new-cli/GitVersion.Core/GitVersion.Core.csproj index 47fe040631..68719b22a9 100644 --- a/new-cli/GitVersion.Core/GitVersion.Core.csproj +++ b/new-cli/GitVersion.Core/GitVersion.Core.csproj @@ -11,6 +11,7 @@ + Infrastructure\Environment.cs diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 12e32ad7b6..9f7047f5de 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -12,8 +12,8 @@ - - + + @@ -26,23 +26,23 @@ - - - - - + + + + + - + - + - + diff --git a/src/GitVersion.Testing/GitVersion.Testing.csproj b/src/GitVersion.Testing/GitVersion.Testing.csproj index 08c0eba912..ae6cbfcf09 100644 --- a/src/GitVersion.Testing/GitVersion.Testing.csproj +++ b/src/GitVersion.Testing/GitVersion.Testing.csproj @@ -17,6 +17,7 @@ + From 388b924f458d0ce19845bb8aa1f823add5d713e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 17:47:07 +0000 Subject: [PATCH 015/358] (sdk): Bump dotnet-sdk from 9.0.306 to 10.0.100 Bumps [dotnet-sdk](https://github.com/dotnet/sdk) from 9.0.306 to 10.0.100. - [Release notes](https://github.com/dotnet/sdk/releases) - [Commits](https://github.com/dotnet/sdk/compare/v9.0.306...v10.0.100) --- updated-dependencies: - dependency-name: dotnet-sdk dependency-version: 10.0.100 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- global.json | 2 +- src/GitVersion.Schema/FormatAttributeHandler.cs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/global.json b/global.json index 83a2010aca..0845f26b4e 100644 --- a/global.json +++ b/global.json @@ -5,6 +5,6 @@ "src" ], "sdk": { - "version": "9.0.306" + "version": "10.0.100" } } diff --git a/src/GitVersion.Schema/FormatAttributeHandler.cs b/src/GitVersion.Schema/FormatAttributeHandler.cs index fcd57c4c5f..05e0b19380 100644 --- a/src/GitVersion.Schema/FormatAttributeHandler.cs +++ b/src/GitVersion.Schema/FormatAttributeHandler.cs @@ -5,6 +5,7 @@ using FormatAttribute = GitVersion.Configuration.Attributes.JsonPropertyFormatAttribute; namespace GitVersion.Schema; + internal class FormatAttributeHandler : IAttributeHandler { void IAttributeHandler.AddConstraints(SchemaGenerationContextBase context, Attribute attribute) From ac50e994fc7d2842eecd9186d8d109f1745c47d9 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 12 Nov 2025 03:33:06 +0100 Subject: [PATCH 016/358] updates dependency versions bumps dependency versions to the latest releases. --- build/Directory.Packages.props | 2 +- new-cli/GitVersion.Core/GitVersion.Core.csproj | 1 - src/Directory.Packages.props | 6 +++--- src/GitVersion.App.Tests/GitVersion.App.Tests.csproj | 1 - src/GitVersion.Testing/GitVersion.Testing.csproj | 1 - 5 files changed, 4 insertions(+), 7 deletions(-) diff --git a/build/Directory.Packages.props b/build/Directory.Packages.props index fc7aee8992..76cf1e2a46 100644 --- a/build/Directory.Packages.props +++ b/build/Directory.Packages.props @@ -6,7 +6,7 @@ - + diff --git a/new-cli/GitVersion.Core/GitVersion.Core.csproj b/new-cli/GitVersion.Core/GitVersion.Core.csproj index 68719b22a9..47fe040631 100644 --- a/new-cli/GitVersion.Core/GitVersion.Core.csproj +++ b/new-cli/GitVersion.Core/GitVersion.Core.csproj @@ -11,7 +11,6 @@ - Infrastructure\Environment.cs diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 9f7047f5de..307f97342f 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -23,7 +23,7 @@ - + @@ -38,10 +38,10 @@ - + - + diff --git a/src/GitVersion.App.Tests/GitVersion.App.Tests.csproj b/src/GitVersion.App.Tests/GitVersion.App.Tests.csproj index da4bb57cc0..a6e5694b9a 100644 --- a/src/GitVersion.App.Tests/GitVersion.App.Tests.csproj +++ b/src/GitVersion.App.Tests/GitVersion.App.Tests.csproj @@ -16,7 +16,6 @@ - diff --git a/src/GitVersion.Testing/GitVersion.Testing.csproj b/src/GitVersion.Testing/GitVersion.Testing.csproj index ae6cbfcf09..08c0eba912 100644 --- a/src/GitVersion.Testing/GitVersion.Testing.csproj +++ b/src/GitVersion.Testing/GitVersion.Testing.csproj @@ -17,7 +17,6 @@ - From ba16677320dd3ba6d5cf8cd461d0d3c09abdfee3 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 12 Nov 2025 03:46:52 +0100 Subject: [PATCH 017/358] Updates dotnet and docker versions Updates the latest .NET LTS version to 10.0. Includes .NET 8.0 in the supported versions array. Sets the latest Docker distribution to Ubuntu 24.04. --- build/common/Utilities/Constants.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build/common/Utilities/Constants.cs b/build/common/Utilities/Constants.cs index 49eac5f818..2a6ad5f6ff 100644 --- a/build/common/Utilities/Constants.cs +++ b/build/common/Utilities/Constants.cs @@ -6,8 +6,8 @@ public static class Constants public const string RepoOwner = "GitTools"; public const string Repository = "GitVersion"; - public const string DotnetLtsLatest = "8.0"; - public static readonly string[] DotnetVersions = [DotnetLtsLatest, "9.0"]; + public const string DotnetLtsLatest = "10.0"; + public static readonly string[] DotnetVersions = [DotnetLtsLatest, "9.0", "8.0"]; public const string DefaultBranch = "main"; public const string DefaultConfiguration = "Release"; @@ -30,7 +30,7 @@ public static class Constants public const string FedoraLatest = "fedora.42"; public const string UbuntuLatest = "ubuntu.24.04"; - public const string DockerDistroLatest = DebianLatest; + public const string DockerDistroLatest = UbuntuLatest; public static readonly string[] DockerDistros = [ From 7cd7c4288e5a016bef0562e882631f296199c55a Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 12 Nov 2025 04:10:19 +0100 Subject: [PATCH 018/358] updates .net TFM to net10.0 updates the target framework moniker to .net 10.0 for all build configurations. --- build/.run/Artifacts DotnetTool Test.run.xml | 2 +- build/.run/Artifacts Executable Test.run.xml | 4 ++-- build/.run/Artifacts MsBuildCore Test.run.xml | 2 +- build/.run/Artifacts MsBuildFull Test.run.xml | 4 ++-- build/.run/Artifacts Native Test.run.xml | 2 +- build/.run/Artifacts Prepare.run.xml | 2 +- build/.run/Artifacts Test.run.xml | 2 +- build/.run/Build Docs.run.xml | 4 ++-- build/.run/Build Prepare.run.xml | 4 ++-- build/.run/Build.run.xml | 4 ++-- build/.run/Clean.run.xml | 4 ++-- build/.run/Code Format.run.xml | 4 ++-- build/.run/Default Artifacts.run.xml | 4 ++-- build/.run/Default Build.run.xml | 4 ++-- build/.run/Default Config.run.xml | 4 ++-- build/.run/Default Docker.run.xml | 4 ++-- build/.run/Default Docs.run.xml | 4 ++-- build/.run/Default Publish.run.xml | 4 ++-- build/.run/Docker Build.run.xml | 2 +- build/.run/Docker Manifest.run.xml | 2 +- build/.run/Docker Publish.run.xml | 2 +- build/.run/Docker Test.run.xml | 2 +- build/.run/DockerHub Readme Publish.run.xml | 4 ++-- build/.run/Generate Schemas.run.xml | 8 ++++--- build/.run/Package Archive.run.xml | 4 ++-- build/.run/Package Chocolatey.run.xml | 4 ++-- build/.run/Package Nuget.run.xml | 4 ++-- build/.run/Package Prepare.run.xml | 4 ++-- build/.run/Package.run.xml | 4 ++-- build/.run/Preview Docs.run.xml | 4 ++-- build/.run/Publish Chocolatey.run.xml | 4 ++-- build/.run/Publish Docs.run.xml | 4 ++-- build/.run/Publish Nuget.run.xml | 4 ++-- build/.run/Publish Release.run.xml | 4 ++-- build/.run/PublishCoverage.run.xml | 2 +- build/.run/SetMatrix.run.xml | 4 ++-- build/.run/Test.run.xml | 4 ++-- build/.run/UnitTest (8.0).run.xml | 16 +++++++++---- build/.run/UnitTest (9.0).run.xml | 4 ++-- build/.run/UnitTest (Lts Latest).run.xml | 23 +++++++++++++++++++ build/.run/Validate Version.run.xml | 4 ++-- build/Directory.Build.props | 2 +- 42 files changed, 106 insertions(+), 75 deletions(-) create mode 100644 build/.run/UnitTest (Lts Latest).run.xml diff --git a/build/.run/Artifacts DotnetTool Test.run.xml b/build/.run/Artifacts DotnetTool Test.run.xml index ffb49db890..ac637febb2 100644 --- a/build/.run/Artifacts DotnetTool Test.run.xml +++ b/build/.run/Artifacts DotnetTool Test.run.xml @@ -15,7 +15,7 @@ /// +#if NET9_0_OR_GREATER [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex TriviaRegex(); + public static partial Regex TriviaRegex { get; } +#else + [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] + private static partial Regex TriviaRegexImpl(); + + public static Regex TriviaRegex => TriviaRegexImpl(); +#endif +#if NET9_0_OR_GREATER + [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] + public static partial Regex AttributeRegex { get; } +#else [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex AttributeRegex(); + private static partial Regex AttributeRegexImpl(); + + public static Regex AttributeRegex => AttributeRegexImpl(); +#endif } internal static partial class VisualBasic @@ -446,11 +761,25 @@ internal static partial class VisualBasic \s*\(\s*\)\s*\> # End brackets ()> """; +#if NET9_0_OR_GREATER + [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] + public static partial Regex TriviaRegex { get; } +#else [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex TriviaRegex(); + private static partial Regex TriviaRegexImpl(); + + public static Regex TriviaRegex => TriviaRegexImpl(); +#endif +#if NET9_0_OR_GREATER [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex AttributeRegex(); + public static partial Regex AttributeRegex { get; } +#else + [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] + private static partial Regex AttributeRegexImpl(); + + public static Regex AttributeRegex => AttributeRegexImpl(); +#endif } } } diff --git a/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs b/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs index a055b7b53b..382b8dfedc 100644 --- a/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs +++ b/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs @@ -45,7 +45,7 @@ public string FormatWith(T? source, IEnvironment environment) var result = new StringBuilder(); var lastIndex = 0; - foreach (var match in RegexPatterns.Common.ExpandTokensRegex().Matches(template).Cast()) + foreach (var match in RegexPatterns.Common.ExpandTokensRegex.Matches(template).Cast()) { var replacement = EvaluateMatch(match, source, environment); result.Append(template, lastIndex, match.Index - lastIndex); diff --git a/src/GitVersion.Core/Logging/Log.cs b/src/GitVersion.Core/Logging/Log.cs index 05de5b44c9..af82183a0e 100644 --- a/src/GitVersion.Core/Logging/Log.cs +++ b/src/GitVersion.Core/Logging/Log.cs @@ -58,7 +58,7 @@ public IDisposable IndentLog(string operationDescription) private string FormatMessage(string message, string level) { - var obscuredMessage = RegexPatterns.Common.ObscurePasswordRegex().Replace(message, "$1$2:*******@"); + var obscuredMessage = RegexPatterns.Common.ObscurePasswordRegex.Replace(message, "$1$2:*******@"); var timestamp = $"{DateTime.Now:yy-MM-dd H:mm:ss:ff}"; return string.Format(CultureInfo.InvariantCulture, "{0}{1} [{2}] {3}", this.currentIndentation, level, timestamp, obscuredMessage); } diff --git a/src/GitVersion.Core/MergeMessage.cs b/src/GitVersion.Core/MergeMessage.cs index 243aa2e758..7a0ffda7e2 100644 --- a/src/GitVersion.Core/MergeMessage.cs +++ b/src/GitVersion.Core/MergeMessage.cs @@ -11,14 +11,14 @@ public class MergeMessage { private static readonly IList<(string Name, Regex Pattern)> DefaultFormats = [ - new("Default", RegexPatterns.MergeMessage.DefaultMergeMessageRegex()), - new("SmartGit", RegexPatterns.MergeMessage.SmartGitMergeMessageRegex()), - new("BitBucketPull", RegexPatterns.MergeMessage.BitBucketPullMergeMessageRegex()), - new("BitBucketPullv7", RegexPatterns.MergeMessage.BitBucketPullv7MergeMessageRegex()), - new("BitBucketCloudPull", RegexPatterns.MergeMessage.BitBucketCloudPullMergeMessageRegex()), - new("GitHubPull", RegexPatterns.MergeMessage.GitHubPullMergeMessageRegex()), - new("RemoteTracking", RegexPatterns.MergeMessage.RemoteTrackingMergeMessageRegex()), - new("AzureDevOpsPull", RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex()) + new("Default", RegexPatterns.MergeMessage.DefaultMergeMessageRegex), + new("SmartGit", RegexPatterns.MergeMessage.SmartGitMergeMessageRegex), + new("BitBucketPull", RegexPatterns.MergeMessage.BitBucketPullMergeMessageRegex), + new("BitBucketPullv7", RegexPatterns.MergeMessage.BitBucketPullv7MergeMessageRegex), + new("BitBucketCloudPull", RegexPatterns.MergeMessage.BitBucketCloudPullMergeMessageRegex), + new("GitHubPull", RegexPatterns.MergeMessage.GitHubPullMergeMessageRegex), + new("RemoteTracking", RegexPatterns.MergeMessage.RemoteTrackingMergeMessageRegex), + new("AzureDevOpsPull", RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex) ]; public MergeMessage(string mergeMessage, IGitVersionConfiguration configuration) diff --git a/src/GitVersion.Core/SemVer/SemanticVersion.cs b/src/GitVersion.Core/SemVer/SemanticVersion.cs index eb421e36c7..cab2f2cb3b 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersion.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersion.cs @@ -149,7 +149,7 @@ public static bool TryParse(string version, string? tagPrefixRegex, private static bool TryParseStrict(string version, [NotNullWhen(true)] out SemanticVersion? semanticVersion) { - var parsed = RegexPatterns.SemanticVersion.ParseStrictRegex().Match(version); + var parsed = RegexPatterns.SemanticVersion.ParseStrictRegex.Match(version); if (!parsed.Success) { @@ -171,7 +171,7 @@ private static bool TryParseStrict(string version, [NotNullWhen(true)] out Seman private static bool TryParseLoose(string version, [NotNullWhen(true)] out SemanticVersion? semanticVersion) { - var parsed = RegexPatterns.SemanticVersion.ParseLooseRegex().Match(version); + var parsed = RegexPatterns.SemanticVersion.ParseLooseRegex.Match(version); if (!parsed.Success) { diff --git a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs index 88f2fc658a..5ae4086543 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs @@ -111,7 +111,7 @@ public static SemanticVersionBuildMetaData Parse(string? buildMetaData) if (buildMetaData.IsNullOrEmpty()) return Empty; - var parsed = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex().Match(buildMetaData); + var parsed = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex.Match(buildMetaData); long? buildMetaDataCommitsSinceTag = null; long? buildMetaDataCommitsSinceVersionSource = null; @@ -147,7 +147,7 @@ public static SemanticVersionBuildMetaData Parse(string? buildMetaData) private static string FormatMetaDataPart(string value) { if (!value.IsNullOrEmpty()) - value = RegexPatterns.SemanticVersion.FormatBuildMetaDataRegex().Replace(value, "-"); + value = RegexPatterns.SemanticVersion.FormatBuildMetaDataRegex.Replace(value, "-"); return value; } } diff --git a/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs b/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs index 30dc819449..5244c32240 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs @@ -70,7 +70,7 @@ public static SemanticVersionPreReleaseTag Parse(string? preReleaseTag) { if (preReleaseTag.IsNullOrEmpty()) return Empty; - var match = RegexPatterns.SemanticVersion.ParsePreReleaseTagRegex().Match(preReleaseTag); + var match = RegexPatterns.SemanticVersion.ParsePreReleaseTagRegex.Match(preReleaseTag); if (!match.Success) { // TODO check how to log this diff --git a/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs b/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs index ef529381fc..1a2b0bf32b 100644 --- a/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs +++ b/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs @@ -49,10 +49,10 @@ public VersionField DetermineIncrementedField( { commits.NotNull(); - var majorRegex = TryGetRegexOrDefault(configuration.MajorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMajorRegex()); - var minorRegex = TryGetRegexOrDefault(configuration.MinorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMinorRegex()); - var patchRegex = TryGetRegexOrDefault(configuration.PatchVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultPatchRegex()); - var noBumpRegex = TryGetRegexOrDefault(configuration.NoBumpMessage, RegexPatterns.VersionCalculation.DefaultNoBumpRegex()); + var majorRegex = TryGetRegexOrDefault(configuration.MajorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMajorRegex); + var minorRegex = TryGetRegexOrDefault(configuration.MinorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMinorRegex); + var patchRegex = TryGetRegexOrDefault(configuration.PatchVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultPatchRegex); + var noBumpRegex = TryGetRegexOrDefault(configuration.NoBumpMessage, RegexPatterns.VersionCalculation.DefaultNoBumpRegex); var increments = commits .Select(c => GetIncrementFromCommit(c, majorRegex, minorRegex, patchRegex, noBumpRegex)) @@ -209,10 +209,10 @@ public VersionField GetIncrementForcedByCommit(ICommit commit, IGitVersionConfig commit.NotNull(); configuration.NotNull(); - var majorRegex = TryGetRegexOrDefault(configuration.MajorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMajorRegex()); - var minorRegex = TryGetRegexOrDefault(configuration.MinorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMinorRegex()); - var patchRegex = TryGetRegexOrDefault(configuration.PatchVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultPatchRegex()); - var none = TryGetRegexOrDefault(configuration.NoBumpMessage, RegexPatterns.VersionCalculation.DefaultNoBumpRegex()); + var majorRegex = TryGetRegexOrDefault(configuration.MajorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMajorRegex); + var minorRegex = TryGetRegexOrDefault(configuration.MinorVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultMinorRegex); + var patchRegex = TryGetRegexOrDefault(configuration.PatchVersionBumpMessage, RegexPatterns.VersionCalculation.DefaultPatchRegex); + var none = TryGetRegexOrDefault(configuration.NoBumpMessage, RegexPatterns.VersionCalculation.DefaultNoBumpRegex); return GetIncrementFromCommit(commit, majorRegex, minorRegex, patchRegex, none) ?? VersionField.None; } diff --git a/src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs b/src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs index d177c6fee0..ae53770b68 100644 --- a/src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs +++ b/src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs @@ -44,9 +44,9 @@ private static bool FileContainsVersionAttribute(IFileSystem fileSystem, string var (attributeRegex, triviaRegex) = compileFileExtension switch { - ".cs" => (CSharp.AttributeRegex(), CSharp.TriviaRegex()), - ".fs" => (FSharp.AttributeRegex(), FSharp.TriviaRegex()), - ".vb" => (VisualBasic.AttributeRegex(), VisualBasic.TriviaRegex()), + ".cs" => (CSharp.AttributeRegex, CSharp.TriviaRegex), + ".fs" => (FSharp.AttributeRegex, FSharp.TriviaRegex), + ".vb" => (VisualBasic.AttributeRegex, VisualBasic.TriviaRegex), _ => throw new WarningException("File with name containing AssemblyInfo could not be checked for assembly version attributes which conflict with the attributes generated by GitVersion " + compileFile) }; diff --git a/src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs b/src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs index 3b531597ee..bfb0166d5d 100644 --- a/src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs +++ b/src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs @@ -17,9 +17,9 @@ internal sealed class AssemblyInfoFileUpdater(ILog log, IFileSystem fileSystem) private readonly Dictionary assemblyAttributeRegexes = new() { - [".cs"] = RegexPatterns.Output.CsharpAssemblyAttributeRegex(), - [".fs"] = RegexPatterns.Output.FsharpAssemblyAttributeRegex(), - [".vb"] = RegexPatterns.Output.VisualBasicAssemblyAttributeRegex() + [".cs"] = RegexPatterns.Output.CsharpAssemblyAttributeRegex, + [".fs"] = RegexPatterns.Output.FsharpAssemblyAttributeRegex, + [".vb"] = RegexPatterns.Output.VisualBasicAssemblyAttributeRegex }; private const string NewLine = "\r\n"; @@ -65,17 +65,17 @@ public void Execute(GitVersionVariables variables, AssemblyInfoContext context) if (!assemblyVersion.IsNullOrWhiteSpace()) { - fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyVersionRegex(), fileContents, assemblyVersionString, assemblyInfoFile.Extension, ref appendedAttributes); + fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyVersionRegex, fileContents, assemblyVersionString, assemblyInfoFile.Extension, ref appendedAttributes); } if (!assemblyFileVersion.IsNullOrWhiteSpace()) { - fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyFileVersionRegex(), fileContents, assemblyFileVersionString, assemblyInfoFile.Extension, ref appendedAttributes); + fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyFileVersionRegex, fileContents, assemblyFileVersionString, assemblyInfoFile.Extension, ref appendedAttributes); } if (!assemblyInfoVersion.IsNullOrWhiteSpace()) { - fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyInfoVersionRegex(), fileContents, assemblyInfoVersionString, assemblyInfoFile.Extension, ref appendedAttributes); + fileContents = ReplaceOrInsertAfterLastAssemblyAttributeOrAppend(RegexPatterns.Output.AssemblyInfoVersionRegex, fileContents, assemblyInfoVersionString, assemblyInfoFile.Extension, ref appendedAttributes); } if (appendedAttributes) diff --git a/src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs b/src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs index 826728b19b..d22f2f9d73 100644 --- a/src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs +++ b/src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs @@ -12,7 +12,7 @@ public static string SanitizeParticipant(string participant) { GuardAgainstInvalidParticipants(participant); - return RegexPatterns.Output.SanitizeParticipantRegex().Replace(participant, "_"); + return RegexPatterns.Output.SanitizeParticipantRegex.Replace(participant, "_"); } private static void GuardAgainstInvalidParticipants(string participant) From d2e5063b718cf3e0e74eb7c89170582725efb81d Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 17 Nov 2025 09:31:30 +0100 Subject: [PATCH 031/358] centralize regex patterns and add timeout unifies regex definitions into a central descriptor list. adds a default timeout to regex construction for safety. --- src/GitVersion.Core/Core/RegexPatterns.cs | 118 +++++++++++----------- 1 file changed, 60 insertions(+), 58 deletions(-) diff --git a/src/GitVersion.Core/Core/RegexPatterns.cs b/src/GitVersion.Core/Core/RegexPatterns.cs index 5423d60cc5..f4effd89ee 100644 --- a/src/GitVersion.Core/Core/RegexPatterns.cs +++ b/src/GitVersion.Core/Core/RegexPatterns.cs @@ -8,6 +8,7 @@ namespace GitVersion.Core; internal static partial class RegexPatterns { private const RegexOptions Options = RegexOptions.IgnoreCase | RegexOptions.Compiled; + private static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(2); // unified timeout for non-GeneratedRegex fallbacks public static class Cache { @@ -20,61 +21,67 @@ public static Regex GetOrAdd([StringSyntax(StringSyntaxAttribute.Regex)] string return cache.GetOrAdd(pattern, key => KnownRegexes.TryGetValue(key, out var regex) ? regex - : new Regex(key, Options)); + : new Regex(key, Options, DefaultTimeout)); // now uses timeout for safety } + // Descriptor used to centralize pattern + compiled regex instance. Extendable with options/timeout metadata later. + private readonly record struct RegexDescriptor(string Pattern, Regex Regex); + + // Central descriptor list – single source of truth for known patterns. Order not significant. + private static readonly RegexDescriptor[] Descriptors = + [ + new(Common.SwitchArgumentRegexPattern, Common.SwitchArgumentRegex), + new(Common.ObscurePasswordRegexPattern, Common.ObscurePasswordRegex), + new(Common.ExpandTokensRegexPattern, Common.ExpandTokensRegex), + new(Common.SanitizeEnvVarNameRegexPattern, Common.SanitizeEnvVarNameRegex), + new(Common.SanitizeMemberNameRegexPattern, Common.SanitizeMemberNameRegex), + new(Common.SanitizeNameRegexPattern, Common.SanitizeNameRegex), + new(Configuration.DefaultTagPrefixRegexPattern, Configuration.DefaultTagPrefixRegex), + new(Configuration.DefaultVersionInBranchRegexPattern, Configuration.DefaultVersionInBranchRegex), + new(Configuration.MainBranchRegexPattern, Configuration.MainBranchRegex), + new(Configuration.DevelopBranchRegexPattern, Configuration.DevelopBranchRegex), + new(Configuration.ReleaseBranchRegexPattern, Configuration.ReleaseBranchRegex), + new(Configuration.FeatureBranchRegexPattern, Configuration.FeatureBranchRegex), + new(Configuration.PullRequestBranchRegexPattern, Configuration.PullRequestBranchRegex), + new(Configuration.HotfixBranchRegexPattern, Configuration.HotfixBranchRegex), + new(Configuration.SupportBranchRegexPattern, Configuration.SupportBranchRegex), + new(Configuration.UnknownBranchRegexPattern, Configuration.UnknownBranchRegex), + new(MergeMessage.DefaultMergeMessageRegexPattern, MergeMessage.DefaultMergeMessageRegex), + new(MergeMessage.SmartGitMergeMessageRegexPattern, MergeMessage.SmartGitMergeMessageRegex), + new(MergeMessage.BitBucketPullMergeMessageRegexPattern, MergeMessage.BitBucketPullMergeMessageRegex), + new(MergeMessage.BitBucketPullv7MergeMessageRegexPattern, MergeMessage.BitBucketPullv7MergeMessageRegex), + new(MergeMessage.BitBucketCloudPullMergeMessageRegexPattern, MergeMessage.BitBucketCloudPullMergeMessageRegex), + new(MergeMessage.GitHubPullMergeMessageRegexPattern, MergeMessage.GitHubPullMergeMessageRegex), + new(MergeMessage.RemoteTrackingMergeMessageRegexPattern, MergeMessage.RemoteTrackingMergeMessageRegex), + new(MergeMessage.AzureDevOpsPullMergeMessageRegexPattern, MergeMessage.AzureDevOpsPullMergeMessageRegex), + new(Output.AssemblyVersionRegexPattern, Output.AssemblyVersionRegex), + new(Output.AssemblyInfoVersionRegexPattern, Output.AssemblyInfoVersionRegex), + new(Output.AssemblyFileVersionRegexPattern, Output.AssemblyFileVersionRegex), + new(Output.SanitizeAssemblyInfoRegexPattern, Output.SanitizeAssemblyInfoRegex), + new(Output.CsharpAssemblyAttributeRegexPattern, Output.CsharpAssemblyAttributeRegex), + new(Output.FsharpAssemblyAttributeRegexPattern, Output.FsharpAssemblyAttributeRegex), + new(Output.VisualBasicAssemblyAttributeRegexPattern, Output.VisualBasicAssemblyAttributeRegex), + new(Output.SanitizeParticipantRegexPattern, Output.SanitizeParticipantRegex), + new(VersionCalculation.DefaultMajorRegexPattern, VersionCalculation.DefaultMajorRegex), + new(VersionCalculation.DefaultMinorRegexPattern, VersionCalculation.DefaultMinorRegex), + new(VersionCalculation.DefaultPatchRegexPattern, VersionCalculation.DefaultPatchRegex), + new(VersionCalculation.DefaultNoBumpRegexPattern, VersionCalculation.DefaultNoBumpRegex), + new(SemanticVersion.ParseStrictRegexPattern, SemanticVersion.ParseStrictRegex), + new(SemanticVersion.ParseLooseRegexPattern, SemanticVersion.ParseLooseRegex), + new(SemanticVersion.ParseBuildMetaDataRegexPattern, SemanticVersion.ParseBuildMetaDataRegex), + new(SemanticVersion.FormatBuildMetaDataRegexPattern, SemanticVersion.FormatBuildMetaDataRegex), + new(SemanticVersion.ParsePreReleaseTagRegexPattern, SemanticVersion.ParsePreReleaseTagRegex), + // Trivia pattern unified: C# & F# share same underlying pattern; only map once under C# constant. + new(AssemblyVersion.CSharp.TriviaRegexPattern, AssemblyVersion.CSharp.TriviaRegex), + new(AssemblyVersion.CSharp.AttributeRegexPattern, AssemblyVersion.CSharp.AttributeRegex), + // F# Trivia pattern identical – Attribute differs, so include attribute pattern only. + new(AssemblyVersion.FSharp.AttributeRegexPattern, AssemblyVersion.FSharp.AttributeRegex), + new(AssemblyVersion.VisualBasic.TriviaRegexPattern, AssemblyVersion.VisualBasic.TriviaRegex), + new(AssemblyVersion.VisualBasic.AttributeRegexPattern, AssemblyVersion.VisualBasic.AttributeRegex) + ]; + private static readonly ImmutableDictionary KnownRegexes = - new Dictionary - { - [Common.SwitchArgumentRegexPattern] = Common.SwitchArgumentRegex, - [Common.ObscurePasswordRegexPattern] = Common.ObscurePasswordRegex, - [Common.ExpandTokensRegexPattern] = Common.ExpandTokensRegex, - [Common.SanitizeEnvVarNameRegexPattern] = Common.SanitizeEnvVarNameRegex, - [Common.SanitizeMemberNameRegexPattern] = Common.SanitizeMemberNameRegex, - [Common.SanitizeNameRegexPattern] = Common.SanitizeNameRegex, - [Configuration.DefaultTagPrefixRegexPattern] = Configuration.DefaultTagPrefixRegex, - [Configuration.DefaultVersionInBranchRegexPattern] = Configuration.DefaultVersionInBranchRegex, - [Configuration.MainBranchRegexPattern] = Configuration.MainBranchRegex, - [Configuration.DevelopBranchRegexPattern] = Configuration.DevelopBranchRegex, - [Configuration.ReleaseBranchRegexPattern] = Configuration.ReleaseBranchRegex, - [Configuration.FeatureBranchRegexPattern] = Configuration.FeatureBranchRegex, - [Configuration.PullRequestBranchRegexPattern] = Configuration.PullRequestBranchRegex, - [Configuration.HotfixBranchRegexPattern] = Configuration.HotfixBranchRegex, - [Configuration.SupportBranchRegexPattern] = Configuration.SupportBranchRegex, - [Configuration.UnknownBranchRegexPattern] = Configuration.UnknownBranchRegex, - [MergeMessage.DefaultMergeMessageRegexPattern] = MergeMessage.DefaultMergeMessageRegex, - [MergeMessage.SmartGitMergeMessageRegexPattern] = MergeMessage.SmartGitMergeMessageRegex, - [MergeMessage.BitBucketPullMergeMessageRegexPattern] = MergeMessage.BitBucketPullMergeMessageRegex, - [MergeMessage.BitBucketPullv7MergeMessageRegexPattern] = MergeMessage.BitBucketPullv7MergeMessageRegex, - [MergeMessage.BitBucketCloudPullMergeMessageRegexPattern] = MergeMessage.BitBucketCloudPullMergeMessageRegex, - [MergeMessage.GitHubPullMergeMessageRegexPattern] = MergeMessage.GitHubPullMergeMessageRegex, - [MergeMessage.RemoteTrackingMergeMessageRegexPattern] = MergeMessage.RemoteTrackingMergeMessageRegex, - [MergeMessage.AzureDevOpsPullMergeMessageRegexPattern] = MergeMessage.AzureDevOpsPullMergeMessageRegex, - [Output.AssemblyVersionRegexPattern] = Output.AssemblyVersionRegex, - [Output.AssemblyInfoVersionRegexPattern] = Output.AssemblyInfoVersionRegex, - [Output.AssemblyFileVersionRegexPattern] = Output.AssemblyFileVersionRegex, - [Output.SanitizeAssemblyInfoRegexPattern] = Output.SanitizeAssemblyInfoRegex, - [Output.CsharpAssemblyAttributeRegexPattern] = Output.CsharpAssemblyAttributeRegex, - [Output.FsharpAssemblyAttributeRegexPattern] = Output.FsharpAssemblyAttributeRegex, - [Output.VisualBasicAssemblyAttributeRegexPattern] = Output.VisualBasicAssemblyAttributeRegex, - [Output.SanitizeParticipantRegexPattern] = Output.SanitizeParticipantRegex, - [VersionCalculation.DefaultMajorRegexPattern] = VersionCalculation.DefaultMajorRegex, - [VersionCalculation.DefaultMinorRegexPattern] = VersionCalculation.DefaultMinorRegex, - [VersionCalculation.DefaultPatchRegexPattern] = VersionCalculation.DefaultPatchRegex, - [VersionCalculation.DefaultNoBumpRegexPattern] = VersionCalculation.DefaultNoBumpRegex, - [SemanticVersion.ParseStrictRegexPattern] = SemanticVersion.ParseStrictRegex, - [SemanticVersion.ParseLooseRegexPattern] = SemanticVersion.ParseLooseRegex, - [SemanticVersion.ParseBuildMetaDataRegexPattern] = SemanticVersion.ParseBuildMetaDataRegex, - [SemanticVersion.FormatBuildMetaDataRegexPattern] = SemanticVersion.FormatBuildMetaDataRegex, - [SemanticVersion.ParsePreReleaseTagRegexPattern] = SemanticVersion.ParsePreReleaseTagRegex, - [AssemblyVersion.CSharp.TriviaRegexPattern] = AssemblyVersion.CSharp.TriviaRegex, - [AssemblyVersion.CSharp.AttributeRegexPattern] = AssemblyVersion.CSharp.AttributeRegex, - [AssemblyVersion.FSharp.TriviaRegexPattern] = AssemblyVersion.FSharp.TriviaRegex, - // AssemblyVersion.FSharp.TriviaRegexPattern is same as C# so can't be added to the cache so C# TriviaRegex is used for F# as well. - [AssemblyVersion.FSharp.AttributeRegexPattern] = AssemblyVersion.FSharp.AttributeRegex, - [AssemblyVersion.VisualBasic.TriviaRegexPattern] = AssemblyVersion.VisualBasic.TriviaRegex, - [AssemblyVersion.VisualBasic.AttributeRegexPattern] = AssemblyVersion.VisualBasic.AttributeRegex - }.ToImmutableDictionary(); + Descriptors.ToImmutableDictionary(d => d.Pattern, d => d.Regex); } internal static partial class Common @@ -700,12 +707,7 @@ internal static partial class CSharp internal static partial class FSharp { [StringSyntax(StringSyntaxAttribute.Regex)] - internal const string TriviaRegexPattern = - """ - /\*(.*?)\*/ # Block comments: matches /* ... */ - |//(.*?)\r?\n # Line comments: matches // ... followed by a newline - |"((\\[^\n]|[^"\n])*)" # Strings: matches " ... " including escaped quotes - """; + internal const string TriviaRegexPattern = CSharp.TriviaRegexPattern; // unified [StringSyntax(StringSyntaxAttribute.Regex)] internal const string AttributeRegexPattern = From 826d8a62a09172339fab68220dcf167ce6798b39 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 17 Nov 2025 12:01:34 +0100 Subject: [PATCH 032/358] Use property-backed fields for regex initialization Replaces expression-bodied properties with property-backed fields for Regex initialization to ensure a consistent approach and avoid potential re-evaluations. Affects multiple regex patterns across the project. --- src/GitVersion.Core/Core/RegexPatterns.cs | 94 +++++++++++------------ 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/src/GitVersion.Core/Core/RegexPatterns.cs b/src/GitVersion.Core/Core/RegexPatterns.cs index f4effd89ee..74548e723c 100644 --- a/src/GitVersion.Core/Core/RegexPatterns.cs +++ b/src/GitVersion.Core/Core/RegexPatterns.cs @@ -136,7 +136,7 @@ internal static partial class Common [GeneratedRegex(SwitchArgumentRegexPattern, Options)] private static partial Regex SwitchArgumentRegexImpl(); - public static Regex SwitchArgumentRegex => SwitchArgumentRegexImpl(); + public static Regex SwitchArgumentRegex { get; } = SwitchArgumentRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -146,7 +146,7 @@ internal static partial class Common [GeneratedRegex(ObscurePasswordRegexPattern, Options)] private static partial Regex ObscurePasswordRegexImpl(); - public static Regex ObscurePasswordRegex => ObscurePasswordRegexImpl(); + public static Regex ObscurePasswordRegex { get; } = ObscurePasswordRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -156,7 +156,7 @@ internal static partial class Common [GeneratedRegex(ExpandTokensRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] private static partial Regex ExpandTokensRegexImpl(); - public static Regex ExpandTokensRegex => ExpandTokensRegexImpl(); + public static Regex ExpandTokensRegex { get; } = ExpandTokensRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -166,7 +166,7 @@ internal static partial class Common [GeneratedRegex(SanitizeEnvVarNameRegexPattern, Options)] private static partial Regex SanitizeEnvVarNameRegexImpl(); - public static Regex SanitizeEnvVarNameRegex => SanitizeEnvVarNameRegexImpl(); + public static Regex SanitizeEnvVarNameRegex { get; } = SanitizeEnvVarNameRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -176,7 +176,7 @@ internal static partial class Common [GeneratedRegex(SanitizeMemberNameRegexPattern, Options)] private static partial Regex SanitizeMemberNameRegexImpl(); - public static Regex SanitizeMemberNameRegex => SanitizeMemberNameRegexImpl(); + public static Regex SanitizeMemberNameRegex { get; } = SanitizeMemberNameRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -186,7 +186,7 @@ internal static partial class Common [GeneratedRegex(SanitizeNameRegexPattern, Options)] private static partial Regex SanitizeNameRegexImpl(); - public static Regex SanitizeNameRegex => SanitizeNameRegexImpl(); + public static Regex SanitizeNameRegex { get; } = SanitizeNameRegexImpl(); #endif } @@ -229,7 +229,7 @@ internal static partial class Configuration [GeneratedRegex(DefaultTagPrefixRegexPattern, Options)] private static partial Regex DefaultTagPrefixRegexImpl(); - public static Regex DefaultTagPrefixRegex => DefaultTagPrefixRegexImpl(); + public static Regex DefaultTagPrefixRegex { get; } = DefaultTagPrefixRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -239,7 +239,7 @@ internal static partial class Configuration [GeneratedRegex(DefaultVersionInBranchRegexPattern, Options)] private static partial Regex DefaultVersionInBranchRegexImpl(); - public static Regex DefaultVersionInBranchRegex => DefaultVersionInBranchRegexImpl(); + public static Regex DefaultVersionInBranchRegex { get; } = DefaultVersionInBranchRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -249,7 +249,7 @@ internal static partial class Configuration [GeneratedRegex(MainBranchRegexPattern, Options)] private static partial Regex MainBranchRegexImpl(); - public static Regex MainBranchRegex => MainBranchRegexImpl(); + public static Regex MainBranchRegex { get; } = MainBranchRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -259,7 +259,7 @@ internal static partial class Configuration [GeneratedRegex(DevelopBranchRegexPattern, Options)] private static partial Regex DevelopBranchRegexImpl(); - public static Regex DevelopBranchRegex => DevelopBranchRegexImpl(); + public static Regex DevelopBranchRegex { get; } = DevelopBranchRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -269,7 +269,7 @@ internal static partial class Configuration [GeneratedRegex(ReleaseBranchRegexPattern, Options)] private static partial Regex ReleaseBranchRegexImpl(); - public static Regex ReleaseBranchRegex => ReleaseBranchRegexImpl(); + public static Regex ReleaseBranchRegex { get; } = ReleaseBranchRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -279,7 +279,7 @@ internal static partial class Configuration [GeneratedRegex(FeatureBranchRegexPattern, Options)] private static partial Regex FeatureBranchRegexImpl(); - public static Regex FeatureBranchRegex => FeatureBranchRegexImpl(); + public static Regex FeatureBranchRegex { get; } = FeatureBranchRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -289,7 +289,7 @@ internal static partial class Configuration [GeneratedRegex(PullRequestBranchRegexPattern, Options)] private static partial Regex PullRequestBranchRegexImpl(); - public static Regex PullRequestBranchRegex => PullRequestBranchRegexImpl(); + public static Regex PullRequestBranchRegex { get; } = PullRequestBranchRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -299,7 +299,7 @@ internal static partial class Configuration [GeneratedRegex(HotfixBranchRegexPattern, Options)] private static partial Regex HotfixBranchRegexImpl(); - public static Regex HotfixBranchRegex => HotfixBranchRegexImpl(); + public static Regex HotfixBranchRegex { get; } = HotfixBranchRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -309,7 +309,7 @@ internal static partial class Configuration [GeneratedRegex(SupportBranchRegexPattern, Options)] private static partial Regex SupportBranchRegexImpl(); - public static Regex SupportBranchRegex => SupportBranchRegexImpl(); + public static Regex SupportBranchRegex { get; } = SupportBranchRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -319,7 +319,7 @@ internal static partial class Configuration [GeneratedRegex(UnknownBranchRegexPattern, Options)] private static partial Regex UnknownBranchRegexImpl(); - public static Regex UnknownBranchRegex => UnknownBranchRegexImpl(); + public static Regex UnknownBranchRegex { get; } = UnknownBranchRegexImpl(); #endif } @@ -356,7 +356,7 @@ internal static partial class MergeMessage [GeneratedRegex(DefaultMergeMessageRegexPattern, Options)] private static partial Regex DefaultMergeMessageRegexImpl(); - public static Regex DefaultMergeMessageRegex => DefaultMergeMessageRegexImpl(); + public static Regex DefaultMergeMessageRegex { get; } = DefaultMergeMessageRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -366,7 +366,7 @@ internal static partial class MergeMessage [GeneratedRegex(SmartGitMergeMessageRegexPattern, Options)] private static partial Regex SmartGitMergeMessageRegexImpl(); - public static Regex SmartGitMergeMessageRegex => SmartGitMergeMessageRegexImpl(); + public static Regex SmartGitMergeMessageRegex { get; } = SmartGitMergeMessageRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -376,7 +376,7 @@ internal static partial class MergeMessage [GeneratedRegex(BitBucketPullMergeMessageRegexPattern, Options)] private static partial Regex BitBucketPullMergeMessageRegexImpl(); - public static Regex BitBucketPullMergeMessageRegex => BitBucketPullMergeMessageRegexImpl(); + public static Regex BitBucketPullMergeMessageRegex { get; } = BitBucketPullMergeMessageRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -386,7 +386,7 @@ internal static partial class MergeMessage [GeneratedRegex(BitBucketPullv7MergeMessageRegexPattern, Options)] private static partial Regex BitBucketPullv7MergeMessageRegexImpl(); - public static Regex BitBucketPullv7MergeMessageRegex => BitBucketPullv7MergeMessageRegexImpl(); + public static Regex BitBucketPullv7MergeMessageRegex { get; } = BitBucketPullv7MergeMessageRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -396,7 +396,7 @@ internal static partial class MergeMessage [GeneratedRegex(BitBucketCloudPullMergeMessageRegexPattern, Options)] private static partial Regex BitBucketCloudPullMergeMessageRegexImpl(); - public static Regex BitBucketCloudPullMergeMessageRegex => BitBucketCloudPullMergeMessageRegexImpl(); + public static Regex BitBucketCloudPullMergeMessageRegex { get; } = BitBucketCloudPullMergeMessageRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -406,7 +406,7 @@ internal static partial class MergeMessage [GeneratedRegex(GitHubPullMergeMessageRegexPattern, Options)] private static partial Regex GitHubPullMergeMessageRegexImpl(); - public static Regex GitHubPullMergeMessageRegex => GitHubPullMergeMessageRegexImpl(); + public static Regex GitHubPullMergeMessageRegex { get; } = GitHubPullMergeMessageRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -416,7 +416,7 @@ internal static partial class MergeMessage [GeneratedRegex(RemoteTrackingMergeMessageRegexPattern, Options)] private static partial Regex RemoteTrackingMergeMessageRegexImpl(); - public static Regex RemoteTrackingMergeMessageRegex => RemoteTrackingMergeMessageRegexImpl(); + public static Regex RemoteTrackingMergeMessageRegex { get; } = RemoteTrackingMergeMessageRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -426,7 +426,7 @@ internal static partial class MergeMessage [GeneratedRegex(AzureDevOpsPullMergeMessageRegexPattern, Options)] private static partial Regex AzureDevOpsPullMergeMessageRegexImpl(); - public static Regex AzureDevOpsPullMergeMessageRegex => AzureDevOpsPullMergeMessageRegexImpl(); + public static Regex AzureDevOpsPullMergeMessageRegex { get; } = AzureDevOpsPullMergeMessageRegexImpl(); #endif } @@ -463,7 +463,7 @@ internal static partial class Output [GeneratedRegex(AssemblyVersionRegexPattern, Options)] private static partial Regex AssemblyVersionRegexImpl(); - public static Regex AssemblyVersionRegex => AssemblyVersionRegexImpl(); + public static Regex AssemblyVersionRegex { get; } = AssemblyVersionRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -473,7 +473,7 @@ internal static partial class Output [GeneratedRegex(AssemblyInfoVersionRegexPattern, Options)] private static partial Regex AssemblyInfoVersionRegexImpl(); - public static Regex AssemblyInfoVersionRegex => AssemblyInfoVersionRegexImpl(); + public static Regex AssemblyInfoVersionRegex { get; } = AssemblyInfoVersionRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -483,7 +483,7 @@ internal static partial class Output [GeneratedRegex(AssemblyFileVersionRegexPattern, Options)] private static partial Regex AssemblyFileVersionRegexImpl(); - public static Regex AssemblyFileVersionRegex => AssemblyFileVersionRegexImpl(); + public static Regex AssemblyFileVersionRegex { get; } = AssemblyFileVersionRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -493,7 +493,7 @@ internal static partial class Output [GeneratedRegex(CsharpAssemblyAttributeRegexPattern, Options | RegexOptions.Multiline)] private static partial Regex CsharpAssemblyAttributeRegexImpl(); - public static Regex CsharpAssemblyAttributeRegex => CsharpAssemblyAttributeRegexImpl(); + public static Regex CsharpAssemblyAttributeRegex { get; } = CsharpAssemblyAttributeRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -503,7 +503,7 @@ internal static partial class Output [GeneratedRegex(FsharpAssemblyAttributeRegexPattern, Options | RegexOptions.Multiline)] private static partial Regex FsharpAssemblyAttributeRegexImpl(); - public static Regex FsharpAssemblyAttributeRegex => FsharpAssemblyAttributeRegexImpl(); + public static Regex FsharpAssemblyAttributeRegex { get; } = FsharpAssemblyAttributeRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -513,7 +513,7 @@ internal static partial class Output [GeneratedRegex(VisualBasicAssemblyAttributeRegexPattern, Options | RegexOptions.Multiline)] private static partial Regex VisualBasicAssemblyAttributeRegexImpl(); - public static Regex VisualBasicAssemblyAttributeRegex => VisualBasicAssemblyAttributeRegexImpl(); + public static Regex VisualBasicAssemblyAttributeRegex { get; } = VisualBasicAssemblyAttributeRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -523,7 +523,7 @@ internal static partial class Output [GeneratedRegex(SanitizeParticipantRegexPattern, Options)] private static partial Regex SanitizeParticipantRegexImpl(); - public static Regex SanitizeParticipantRegex => SanitizeParticipantRegexImpl(); + public static Regex SanitizeParticipantRegex { get; } = SanitizeParticipantRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -533,7 +533,7 @@ internal static partial class Output [GeneratedRegex(SanitizeAssemblyInfoRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] private static partial Regex SanitizeAssemblyInfoRegexImpl(); - public static Regex SanitizeAssemblyInfoRegex => SanitizeAssemblyInfoRegexImpl(); + public static Regex SanitizeAssemblyInfoRegex { get; } = SanitizeAssemblyInfoRegexImpl(); #endif } @@ -558,7 +558,7 @@ internal static partial class VersionCalculation [GeneratedRegex(DefaultMajorRegexPattern, Options)] private static partial Regex DefaultMajorRegexImpl(); - public static Regex DefaultMajorRegex => DefaultMajorRegexImpl(); + public static Regex DefaultMajorRegex { get; } = DefaultMajorRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -568,7 +568,7 @@ internal static partial class VersionCalculation [GeneratedRegex(DefaultMinorRegexPattern, Options)] private static partial Regex DefaultMinorRegexImpl(); - public static Regex DefaultMinorRegex => DefaultMinorRegexImpl(); + public static Regex DefaultMinorRegex { get; } = DefaultMinorRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -578,7 +578,7 @@ internal static partial class VersionCalculation [GeneratedRegex(DefaultPatchRegexPattern, Options)] private static partial Regex DefaultPatchRegexImpl(); - public static Regex DefaultPatchRegex => DefaultPatchRegexImpl(); + public static Regex DefaultPatchRegex { get; } = DefaultPatchRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -588,7 +588,7 @@ internal static partial class VersionCalculation [GeneratedRegex(DefaultNoBumpRegexPattern, Options)] private static partial Regex DefaultNoBumpRegexImpl(); - public static Regex DefaultNoBumpRegex => DefaultNoBumpRegexImpl(); + public static Regex DefaultNoBumpRegex { get; } = DefaultNoBumpRegexImpl(); #endif } @@ -617,7 +617,7 @@ internal static partial class SemanticVersion [GeneratedRegex(ParseStrictRegexPattern, Options)] private static partial Regex ParseStrictRegexImpl(); - public static Regex ParseStrictRegex => ParseStrictRegexImpl(); + public static Regex ParseStrictRegex { get; } = ParseStrictRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -627,7 +627,7 @@ internal static partial class SemanticVersion [GeneratedRegex(ParseLooseRegexPattern, Options)] private static partial Regex ParseLooseRegexImpl(); - public static Regex ParseLooseRegex => ParseLooseRegexImpl(); + public static Regex ParseLooseRegex { get; } = ParseLooseRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -637,7 +637,7 @@ internal static partial class SemanticVersion [GeneratedRegex(ParseBuildMetaDataRegexPattern, Options)] private static partial Regex ParseBuildMetaDataRegexImpl(); - public static Regex ParseBuildMetaDataRegex => ParseBuildMetaDataRegexImpl(); + public static Regex ParseBuildMetaDataRegex { get; } = ParseBuildMetaDataRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -647,7 +647,7 @@ internal static partial class SemanticVersion [GeneratedRegex(FormatBuildMetaDataRegexPattern, Options)] private static partial Regex FormatBuildMetaDataRegexImpl(); - public static Regex FormatBuildMetaDataRegex => FormatBuildMetaDataRegexImpl(); + public static Regex FormatBuildMetaDataRegex { get; } = FormatBuildMetaDataRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -657,7 +657,7 @@ internal static partial class SemanticVersion [GeneratedRegex(ParsePreReleaseTagRegexPattern, Options)] private static partial Regex ParsePreReleaseTagRegexImpl(); - public static Regex ParsePreReleaseTagRegex => ParsePreReleaseTagRegexImpl(); + public static Regex ParsePreReleaseTagRegex { get; } = ParsePreReleaseTagRegexImpl(); #endif } @@ -690,7 +690,7 @@ internal static partial class CSharp [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] private static partial Regex TriviaRegexImpl(); - public static Regex TriviaRegex => TriviaRegexImpl(); + public static Regex TriviaRegex { get; } = TriviaRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -700,7 +700,7 @@ internal static partial class CSharp [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] private static partial Regex AttributeRegexImpl(); - public static Regex AttributeRegex => AttributeRegexImpl(); + public static Regex AttributeRegex { get; } = AttributeRegexImpl(); #endif } @@ -730,7 +730,7 @@ internal static partial class FSharp [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] private static partial Regex TriviaRegexImpl(); - public static Regex TriviaRegex => TriviaRegexImpl(); + public static Regex TriviaRegex { get; } = TriviaRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -740,7 +740,7 @@ internal static partial class FSharp [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] private static partial Regex AttributeRegexImpl(); - public static Regex AttributeRegex => AttributeRegexImpl(); + public static Regex AttributeRegex { get; } = AttributeRegexImpl(); #endif } @@ -770,7 +770,7 @@ internal static partial class VisualBasic [GeneratedRegex(TriviaRegexPattern, RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | Options)] private static partial Regex TriviaRegexImpl(); - public static Regex TriviaRegex => TriviaRegexImpl(); + public static Regex TriviaRegex { get; } = TriviaRegexImpl(); #endif #if NET9_0_OR_GREATER @@ -780,7 +780,7 @@ internal static partial class VisualBasic [GeneratedRegex(AttributeRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] private static partial Regex AttributeRegexImpl(); - public static Regex AttributeRegex => AttributeRegexImpl(); + public static Regex AttributeRegex { get; } = AttributeRegexImpl(); #endif } } From aeb6b7ea1aa7fa13d328b6b0369ec891930eb3bc Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 17 Nov 2025 13:23:50 +0100 Subject: [PATCH 033/358] moves regex cache to bottom of class moves regex cache to bottom of the class, for better organization. --- src/GitVersion.Core/Core/RegexPatterns.cs | 151 +++++++++++----------- 1 file changed, 76 insertions(+), 75 deletions(-) diff --git a/src/GitVersion.Core/Core/RegexPatterns.cs b/src/GitVersion.Core/Core/RegexPatterns.cs index 74548e723c..add4489e4f 100644 --- a/src/GitVersion.Core/Core/RegexPatterns.cs +++ b/src/GitVersion.Core/Core/RegexPatterns.cs @@ -10,80 +10,6 @@ internal static partial class RegexPatterns private const RegexOptions Options = RegexOptions.IgnoreCase | RegexOptions.Compiled; private static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(2); // unified timeout for non-GeneratedRegex fallbacks - public static class Cache - { - private static readonly ConcurrentDictionary cache = new(); - - public static Regex GetOrAdd([StringSyntax(StringSyntaxAttribute.Regex)] string pattern) - { - ArgumentNullException.ThrowIfNull(pattern); - - return cache.GetOrAdd(pattern, key => - KnownRegexes.TryGetValue(key, out var regex) - ? regex - : new Regex(key, Options, DefaultTimeout)); // now uses timeout for safety - } - - // Descriptor used to centralize pattern + compiled regex instance. Extendable with options/timeout metadata later. - private readonly record struct RegexDescriptor(string Pattern, Regex Regex); - - // Central descriptor list – single source of truth for known patterns. Order not significant. - private static readonly RegexDescriptor[] Descriptors = - [ - new(Common.SwitchArgumentRegexPattern, Common.SwitchArgumentRegex), - new(Common.ObscurePasswordRegexPattern, Common.ObscurePasswordRegex), - new(Common.ExpandTokensRegexPattern, Common.ExpandTokensRegex), - new(Common.SanitizeEnvVarNameRegexPattern, Common.SanitizeEnvVarNameRegex), - new(Common.SanitizeMemberNameRegexPattern, Common.SanitizeMemberNameRegex), - new(Common.SanitizeNameRegexPattern, Common.SanitizeNameRegex), - new(Configuration.DefaultTagPrefixRegexPattern, Configuration.DefaultTagPrefixRegex), - new(Configuration.DefaultVersionInBranchRegexPattern, Configuration.DefaultVersionInBranchRegex), - new(Configuration.MainBranchRegexPattern, Configuration.MainBranchRegex), - new(Configuration.DevelopBranchRegexPattern, Configuration.DevelopBranchRegex), - new(Configuration.ReleaseBranchRegexPattern, Configuration.ReleaseBranchRegex), - new(Configuration.FeatureBranchRegexPattern, Configuration.FeatureBranchRegex), - new(Configuration.PullRequestBranchRegexPattern, Configuration.PullRequestBranchRegex), - new(Configuration.HotfixBranchRegexPattern, Configuration.HotfixBranchRegex), - new(Configuration.SupportBranchRegexPattern, Configuration.SupportBranchRegex), - new(Configuration.UnknownBranchRegexPattern, Configuration.UnknownBranchRegex), - new(MergeMessage.DefaultMergeMessageRegexPattern, MergeMessage.DefaultMergeMessageRegex), - new(MergeMessage.SmartGitMergeMessageRegexPattern, MergeMessage.SmartGitMergeMessageRegex), - new(MergeMessage.BitBucketPullMergeMessageRegexPattern, MergeMessage.BitBucketPullMergeMessageRegex), - new(MergeMessage.BitBucketPullv7MergeMessageRegexPattern, MergeMessage.BitBucketPullv7MergeMessageRegex), - new(MergeMessage.BitBucketCloudPullMergeMessageRegexPattern, MergeMessage.BitBucketCloudPullMergeMessageRegex), - new(MergeMessage.GitHubPullMergeMessageRegexPattern, MergeMessage.GitHubPullMergeMessageRegex), - new(MergeMessage.RemoteTrackingMergeMessageRegexPattern, MergeMessage.RemoteTrackingMergeMessageRegex), - new(MergeMessage.AzureDevOpsPullMergeMessageRegexPattern, MergeMessage.AzureDevOpsPullMergeMessageRegex), - new(Output.AssemblyVersionRegexPattern, Output.AssemblyVersionRegex), - new(Output.AssemblyInfoVersionRegexPattern, Output.AssemblyInfoVersionRegex), - new(Output.AssemblyFileVersionRegexPattern, Output.AssemblyFileVersionRegex), - new(Output.SanitizeAssemblyInfoRegexPattern, Output.SanitizeAssemblyInfoRegex), - new(Output.CsharpAssemblyAttributeRegexPattern, Output.CsharpAssemblyAttributeRegex), - new(Output.FsharpAssemblyAttributeRegexPattern, Output.FsharpAssemblyAttributeRegex), - new(Output.VisualBasicAssemblyAttributeRegexPattern, Output.VisualBasicAssemblyAttributeRegex), - new(Output.SanitizeParticipantRegexPattern, Output.SanitizeParticipantRegex), - new(VersionCalculation.DefaultMajorRegexPattern, VersionCalculation.DefaultMajorRegex), - new(VersionCalculation.DefaultMinorRegexPattern, VersionCalculation.DefaultMinorRegex), - new(VersionCalculation.DefaultPatchRegexPattern, VersionCalculation.DefaultPatchRegex), - new(VersionCalculation.DefaultNoBumpRegexPattern, VersionCalculation.DefaultNoBumpRegex), - new(SemanticVersion.ParseStrictRegexPattern, SemanticVersion.ParseStrictRegex), - new(SemanticVersion.ParseLooseRegexPattern, SemanticVersion.ParseLooseRegex), - new(SemanticVersion.ParseBuildMetaDataRegexPattern, SemanticVersion.ParseBuildMetaDataRegex), - new(SemanticVersion.FormatBuildMetaDataRegexPattern, SemanticVersion.FormatBuildMetaDataRegex), - new(SemanticVersion.ParsePreReleaseTagRegexPattern, SemanticVersion.ParsePreReleaseTagRegex), - // Trivia pattern unified: C# & F# share same underlying pattern; only map once under C# constant. - new(AssemblyVersion.CSharp.TriviaRegexPattern, AssemblyVersion.CSharp.TriviaRegex), - new(AssemblyVersion.CSharp.AttributeRegexPattern, AssemblyVersion.CSharp.AttributeRegex), - // F# Trivia pattern identical – Attribute differs, so include attribute pattern only. - new(AssemblyVersion.FSharp.AttributeRegexPattern, AssemblyVersion.FSharp.AttributeRegex), - new(AssemblyVersion.VisualBasic.TriviaRegexPattern, AssemblyVersion.VisualBasic.TriviaRegex), - new(AssemblyVersion.VisualBasic.AttributeRegexPattern, AssemblyVersion.VisualBasic.AttributeRegex) - ]; - - private static readonly ImmutableDictionary KnownRegexes = - Descriptors.ToImmutableDictionary(d => d.Pattern, d => d.Regex); - } - internal static partial class Common { [StringSyntax(StringSyntaxAttribute.Regex)] @@ -93,7 +19,8 @@ internal static partial class Common internal const string ObscurePasswordRegexPattern = "(https?://)(.+)(:.+@)"; [StringSyntax(StringSyntaxAttribute.Regex)] - internal const string ExpandTokensRegexPattern = """ + internal const string ExpandTokensRegexPattern = + """ \{ # Opening brace (?: # Start of either env or member expression env:(?!env:)(?[A-Za-z_][A-Za-z0-9_]*) # Only a single env: prefix, not followed by another env: @@ -190,6 +117,80 @@ internal static partial class Common #endif } + public static class Cache + { + private static readonly ConcurrentDictionary cache = new(); + + public static Regex GetOrAdd([StringSyntax(StringSyntaxAttribute.Regex)] string pattern) + { + ArgumentNullException.ThrowIfNull(pattern); + + return cache.GetOrAdd(pattern, key => + KnownRegexes.TryGetValue(key, out var regex) + ? regex + : new Regex(key, Options, DefaultTimeout)); // now uses timeout for safety + } + + // Descriptor used to centralize pattern + compiled regex instance. Extendable with options/timeout metadata later. + private readonly record struct RegexDescriptor(string Pattern, Regex Regex); + + // Central descriptor list – single source of truth for known patterns. Order not significant. + private static readonly RegexDescriptor[] Descriptors = + [ + new(Common.SwitchArgumentRegexPattern, Common.SwitchArgumentRegex), + new(Common.ObscurePasswordRegexPattern, Common.ObscurePasswordRegex), + new(Common.ExpandTokensRegexPattern, Common.ExpandTokensRegex), + new(Common.SanitizeEnvVarNameRegexPattern, Common.SanitizeEnvVarNameRegex), + new(Common.SanitizeMemberNameRegexPattern, Common.SanitizeMemberNameRegex), + new(Common.SanitizeNameRegexPattern, Common.SanitizeNameRegex), + new(Configuration.DefaultTagPrefixRegexPattern, Configuration.DefaultTagPrefixRegex), + new(Configuration.DefaultVersionInBranchRegexPattern, Configuration.DefaultVersionInBranchRegex), + new(Configuration.MainBranchRegexPattern, Configuration.MainBranchRegex), + new(Configuration.DevelopBranchRegexPattern, Configuration.DevelopBranchRegex), + new(Configuration.ReleaseBranchRegexPattern, Configuration.ReleaseBranchRegex), + new(Configuration.FeatureBranchRegexPattern, Configuration.FeatureBranchRegex), + new(Configuration.PullRequestBranchRegexPattern, Configuration.PullRequestBranchRegex), + new(Configuration.HotfixBranchRegexPattern, Configuration.HotfixBranchRegex), + new(Configuration.SupportBranchRegexPattern, Configuration.SupportBranchRegex), + new(Configuration.UnknownBranchRegexPattern, Configuration.UnknownBranchRegex), + new(MergeMessage.DefaultMergeMessageRegexPattern, MergeMessage.DefaultMergeMessageRegex), + new(MergeMessage.SmartGitMergeMessageRegexPattern, MergeMessage.SmartGitMergeMessageRegex), + new(MergeMessage.BitBucketPullMergeMessageRegexPattern, MergeMessage.BitBucketPullMergeMessageRegex), + new(MergeMessage.BitBucketPullv7MergeMessageRegexPattern, MergeMessage.BitBucketPullv7MergeMessageRegex), + new(MergeMessage.BitBucketCloudPullMergeMessageRegexPattern, MergeMessage.BitBucketCloudPullMergeMessageRegex), + new(MergeMessage.GitHubPullMergeMessageRegexPattern, MergeMessage.GitHubPullMergeMessageRegex), + new(MergeMessage.RemoteTrackingMergeMessageRegexPattern, MergeMessage.RemoteTrackingMergeMessageRegex), + new(MergeMessage.AzureDevOpsPullMergeMessageRegexPattern, MergeMessage.AzureDevOpsPullMergeMessageRegex), + new(Output.AssemblyVersionRegexPattern, Output.AssemblyVersionRegex), + new(Output.AssemblyInfoVersionRegexPattern, Output.AssemblyInfoVersionRegex), + new(Output.AssemblyFileVersionRegexPattern, Output.AssemblyFileVersionRegex), + new(Output.SanitizeAssemblyInfoRegexPattern, Output.SanitizeAssemblyInfoRegex), + new(Output.CsharpAssemblyAttributeRegexPattern, Output.CsharpAssemblyAttributeRegex), + new(Output.FsharpAssemblyAttributeRegexPattern, Output.FsharpAssemblyAttributeRegex), + new(Output.VisualBasicAssemblyAttributeRegexPattern, Output.VisualBasicAssemblyAttributeRegex), + new(Output.SanitizeParticipantRegexPattern, Output.SanitizeParticipantRegex), + new(VersionCalculation.DefaultMajorRegexPattern, VersionCalculation.DefaultMajorRegex), + new(VersionCalculation.DefaultMinorRegexPattern, VersionCalculation.DefaultMinorRegex), + new(VersionCalculation.DefaultPatchRegexPattern, VersionCalculation.DefaultPatchRegex), + new(VersionCalculation.DefaultNoBumpRegexPattern, VersionCalculation.DefaultNoBumpRegex), + new(SemanticVersion.ParseStrictRegexPattern, SemanticVersion.ParseStrictRegex), + new(SemanticVersion.ParseLooseRegexPattern, SemanticVersion.ParseLooseRegex), + new(SemanticVersion.ParseBuildMetaDataRegexPattern, SemanticVersion.ParseBuildMetaDataRegex), + new(SemanticVersion.FormatBuildMetaDataRegexPattern, SemanticVersion.FormatBuildMetaDataRegex), + new(SemanticVersion.ParsePreReleaseTagRegexPattern, SemanticVersion.ParsePreReleaseTagRegex), + // Trivia pattern unified: C# & F# share same underlying pattern; only map once under C# constant. + new(AssemblyVersion.CSharp.TriviaRegexPattern, AssemblyVersion.CSharp.TriviaRegex), + new(AssemblyVersion.CSharp.AttributeRegexPattern, AssemblyVersion.CSharp.AttributeRegex), + // F# Trivia pattern identical – Attribute differs, so include attribute pattern only. + new(AssemblyVersion.FSharp.AttributeRegexPattern, AssemblyVersion.FSharp.AttributeRegex), + new(AssemblyVersion.VisualBasic.TriviaRegexPattern, AssemblyVersion.VisualBasic.TriviaRegex), + new(AssemblyVersion.VisualBasic.AttributeRegexPattern, AssemblyVersion.VisualBasic.AttributeRegex) + ]; + + private static readonly ImmutableDictionary KnownRegexes = + Descriptors.ToImmutableDictionary(d => d.Pattern, d => d.Regex); + } + internal static partial class Configuration { [StringSyntax(StringSyntaxAttribute.Regex)] From 822fd5ea2ddf3c1950432ec2e409dc63dc98e3ef Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 17 Nov 2025 13:28:31 +0100 Subject: [PATCH 034/358] refactors regex patterns for better access refactors regex patterns to remove the nested `Common` class for easier access and cleaner code. --- .../ArgumentParserExtensions.cs | 2 +- .../Core/RegexPatternTests.cs | 6 +- src/GitVersion.Core/Core/RegexPatterns.cs | 151 +++++++++--------- .../Extensions/ConfigurationExtensions.cs | 2 +- .../Formatting/InputSanitizer.cs | 4 +- .../Formatting/StringFormatWithExtension.cs | 2 +- src/GitVersion.Core/Logging/Log.cs | 2 +- .../SemanticVersionFormatValues.cs | 2 +- 8 files changed, 84 insertions(+), 87 deletions(-) diff --git a/src/GitVersion.App/ArgumentParserExtensions.cs b/src/GitVersion.App/ArgumentParserExtensions.cs index 1e134f52cd..7d0dade040 100644 --- a/src/GitVersion.App/ArgumentParserExtensions.cs +++ b/src/GitVersion.App/ArgumentParserExtensions.cs @@ -41,7 +41,7 @@ public bool IsValidPath() public bool IsSwitchArgument() { - var patternRegex = RegexPatterns.Common.SwitchArgumentRegex; + var patternRegex = RegexPatterns.SwitchArgumentRegex; return value != null && (value.StartsWith('-') || value.StartsWith('/')) && !patternRegex.Match(value).Success; diff --git a/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs b/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs index 2cfac644ee..9ab32dd3a3 100644 --- a/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs +++ b/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs @@ -10,7 +10,7 @@ public class RegexPatternsTests [TestCase("foo:", false, null)] public void SwitchArgumentRegex_MatchesExpected(string input, bool expected, string? expectedCapture) { - var match = RegexPatterns.Common.SwitchArgumentRegex.Match(input); + var match = RegexPatterns.SwitchArgumentRegex.Match(input); match.Success.ShouldBe(expected); if (expected) match.Value.ShouldBe(expectedCapture); @@ -21,7 +21,7 @@ public void SwitchArgumentRegex_MatchesExpected(string input, bool expected, str [TestCase("ftp://user:pass@host", false, null)] public void ObscurePasswordRegex_MatchesExpected(string input, bool expected, string? expectedCapture) { - var match = RegexPatterns.Common.ObscurePasswordRegex.Match(input); + var match = RegexPatterns.ObscurePasswordRegex.Match(input); match.Success.ShouldBe(expected); if (expected) match.Value.ShouldBe(expectedCapture); @@ -34,7 +34,7 @@ public void ObscurePasswordRegex_MatchesExpected(string input, bool expected, st [TestCase("env:FOO", false, null)] public void ExpandTokensRegex_MatchesExpected(string input, bool expected, string? expectedCapture) { - var match = RegexPatterns.Common.ExpandTokensRegex.Match(input); + var match = RegexPatterns.ExpandTokensRegex.Match(input); match.Success.ShouldBe(expected); if (expected) match.Value.ShouldBe(expectedCapture); diff --git a/src/GitVersion.Core/Core/RegexPatterns.cs b/src/GitVersion.Core/Core/RegexPatterns.cs index add4489e4f..3b6ae834dd 100644 --- a/src/GitVersion.Core/Core/RegexPatterns.cs +++ b/src/GitVersion.Core/Core/RegexPatterns.cs @@ -10,112 +10,109 @@ internal static partial class RegexPatterns private const RegexOptions Options = RegexOptions.IgnoreCase | RegexOptions.Compiled; private static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(2); // unified timeout for non-GeneratedRegex fallbacks - internal static partial class Common - { - [StringSyntax(StringSyntaxAttribute.Regex)] - internal const string SwitchArgumentRegexPattern = @"/\w+:"; + [StringSyntax(StringSyntaxAttribute.Regex)] + private const string SwitchArgumentRegexPattern = @"/\w+:"; - [StringSyntax(StringSyntaxAttribute.Regex)] - internal const string ObscurePasswordRegexPattern = "(https?://)(.+)(:.+@)"; + [StringSyntax(StringSyntaxAttribute.Regex)] + private const string ObscurePasswordRegexPattern = "(https?://)(.+)(:.+@)"; - [StringSyntax(StringSyntaxAttribute.Regex)] - internal const string ExpandTokensRegexPattern = - """ - \{ # Opening brace - (?: # Start of either env or member expression - env:(?!env:)(?[A-Za-z_][A-Za-z0-9_]*) # Only a single env: prefix, not followed by another env: - | # OR - (?[A-Za-z_][A-Za-z0-9_]*) # member/property name - (?: # Optional format specifier - :(?[A-Za-z0-9\.\-,]+) # Colon followed by format string (no spaces, ?, or }), format cannot contain colon - )? # Format is optional - ) # End group for env or member - (?: # Optional fallback group - \s*\?\?\s+ # '??' operator with optional whitespace: exactly two question marks for fallback - (?: # Fallback value alternatives: - (?\w+) # A single word fallback - | # OR - "(?[^"]*)" # A quoted string fallback - ) - )? # Fallback is optional - \} - """; + [StringSyntax(StringSyntaxAttribute.Regex)] + private const string ExpandTokensRegexPattern = + """ + \{ # Opening brace + (?: # Start of either env or member expression + env:(?!env:)(?[A-Za-z_][A-Za-z0-9_]*) # Only a single env: prefix, not followed by another env: + | # OR + (?[A-Za-z_][A-Za-z0-9_]*) # member/property name + (?: # Optional format specifier + :(?[A-Za-z0-9\.\-,]+) # Colon followed by format string (no spaces, ?, or }), format cannot contain colon + )? # Format is optional + ) # End group for env or member + (?: # Optional fallback group + \s*\?\?\s+ # '??' operator with optional whitespace: exactly two question marks for fallback + (?: # Fallback value alternatives: + (?\w+) # A single word fallback + | # OR + "(?[^"]*)" # A quoted string fallback + ) + )? # Fallback is optional + \} + """; - /// - /// Allow alphanumeric, underscore, colon (for custom format specification), hyphen, and dot - /// - [StringSyntax(StringSyntaxAttribute.Regex, Options)] - internal const string SanitizeEnvVarNameRegexPattern = @"^[A-Za-z0-9_:\-\.]+$"; + /// + /// Allow alphanumeric, underscore, colon (for custom format specification), hyphen, and dot + /// + [StringSyntax(StringSyntaxAttribute.Regex, Options)] + internal const string SanitizeEnvVarNameRegexPattern = @"^[A-Za-z0-9_:\-\.]+$"; - /// - /// Allow alphanumeric, underscore, and dot for property/field access - /// - [StringSyntax(StringSyntaxAttribute.Regex, Options)] - internal const string SanitizeMemberNameRegexPattern = @"^[A-Za-z0-9_\.]+$"; + /// + /// Allow alphanumeric, underscore, and dot for property/field access + /// + [StringSyntax(StringSyntaxAttribute.Regex, Options)] + internal const string SanitizeMemberNameRegexPattern = @"^[A-Za-z0-9_\.]+$"; - [StringSyntax(StringSyntaxAttribute.Regex, Options)] - internal const string SanitizeNameRegexPattern = "[^a-zA-Z0-9-]"; + [StringSyntax(StringSyntaxAttribute.Regex, Options)] + internal const string SanitizeNameRegexPattern = "[^a-zA-Z0-9-]"; #if NET9_0_OR_GREATER - [GeneratedRegex(SwitchArgumentRegexPattern, Options)] - public static partial Regex SwitchArgumentRegex { get; } + [GeneratedRegex(SwitchArgumentRegexPattern, Options)] + public static partial Regex SwitchArgumentRegex { get; } #else - [GeneratedRegex(SwitchArgumentRegexPattern, Options)] - private static partial Regex SwitchArgumentRegexImpl(); + [GeneratedRegex(SwitchArgumentRegexPattern, Options)] + private static partial Regex SwitchArgumentRegexImpl(); - public static Regex SwitchArgumentRegex { get; } = SwitchArgumentRegexImpl(); + public static Regex SwitchArgumentRegex { get; } = SwitchArgumentRegexImpl(); #endif #if NET9_0_OR_GREATER - [GeneratedRegex(ObscurePasswordRegexPattern, Options)] - public static partial Regex ObscurePasswordRegex { get; } + [GeneratedRegex(ObscurePasswordRegexPattern, Options)] + public static partial Regex ObscurePasswordRegex { get; } #else - [GeneratedRegex(ObscurePasswordRegexPattern, Options)] - private static partial Regex ObscurePasswordRegexImpl(); + [GeneratedRegex(ObscurePasswordRegexPattern, Options)] + private static partial Regex ObscurePasswordRegexImpl(); - public static Regex ObscurePasswordRegex { get; } = ObscurePasswordRegexImpl(); + public static Regex ObscurePasswordRegex { get; } = ObscurePasswordRegexImpl(); #endif #if NET9_0_OR_GREATER - [GeneratedRegex(ExpandTokensRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] - public static partial Regex ExpandTokensRegex { get; } + [GeneratedRegex(ExpandTokensRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] + public static partial Regex ExpandTokensRegex { get; } #else - [GeneratedRegex(ExpandTokensRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] - private static partial Regex ExpandTokensRegexImpl(); + [GeneratedRegex(ExpandTokensRegexPattern, RegexOptions.IgnorePatternWhitespace | Options)] + private static partial Regex ExpandTokensRegexImpl(); - public static Regex ExpandTokensRegex { get; } = ExpandTokensRegexImpl(); + public static Regex ExpandTokensRegex { get; } = ExpandTokensRegexImpl(); #endif #if NET9_0_OR_GREATER - [GeneratedRegex(SanitizeEnvVarNameRegexPattern, Options)] - public static partial Regex SanitizeEnvVarNameRegex { get; } + [GeneratedRegex(SanitizeEnvVarNameRegexPattern, Options)] + public static partial Regex SanitizeEnvVarNameRegex { get; } #else - [GeneratedRegex(SanitizeEnvVarNameRegexPattern, Options)] - private static partial Regex SanitizeEnvVarNameRegexImpl(); + [GeneratedRegex(SanitizeEnvVarNameRegexPattern, Options)] + private static partial Regex SanitizeEnvVarNameRegexImpl(); - public static Regex SanitizeEnvVarNameRegex { get; } = SanitizeEnvVarNameRegexImpl(); + public static Regex SanitizeEnvVarNameRegex { get; } = SanitizeEnvVarNameRegexImpl(); #endif #if NET9_0_OR_GREATER - [GeneratedRegex(SanitizeMemberNameRegexPattern, Options)] - public static partial Regex SanitizeMemberNameRegex { get; } + [GeneratedRegex(SanitizeMemberNameRegexPattern, Options)] + public static partial Regex SanitizeMemberNameRegex { get; } #else - [GeneratedRegex(SanitizeMemberNameRegexPattern, Options)] - private static partial Regex SanitizeMemberNameRegexImpl(); + [GeneratedRegex(SanitizeMemberNameRegexPattern, Options)] + private static partial Regex SanitizeMemberNameRegexImpl(); - public static Regex SanitizeMemberNameRegex { get; } = SanitizeMemberNameRegexImpl(); + public static Regex SanitizeMemberNameRegex { get; } = SanitizeMemberNameRegexImpl(); #endif #if NET9_0_OR_GREATER - [GeneratedRegex(SanitizeNameRegexPattern, Options)] - public static partial Regex SanitizeNameRegex { get; } + [GeneratedRegex(SanitizeNameRegexPattern, Options)] + public static partial Regex SanitizeNameRegex { get; } #else - [GeneratedRegex(SanitizeNameRegexPattern, Options)] - private static partial Regex SanitizeNameRegexImpl(); + [GeneratedRegex(SanitizeNameRegexPattern, Options)] + private static partial Regex SanitizeNameRegexImpl(); - public static Regex SanitizeNameRegex { get; } = SanitizeNameRegexImpl(); + public static Regex SanitizeNameRegex { get; } = SanitizeNameRegexImpl(); #endif - } public static class Cache { @@ -137,12 +134,12 @@ public static Regex GetOrAdd([StringSyntax(StringSyntaxAttribute.Regex)] string // Central descriptor list – single source of truth for known patterns. Order not significant. private static readonly RegexDescriptor[] Descriptors = [ - new(Common.SwitchArgumentRegexPattern, Common.SwitchArgumentRegex), - new(Common.ObscurePasswordRegexPattern, Common.ObscurePasswordRegex), - new(Common.ExpandTokensRegexPattern, Common.ExpandTokensRegex), - new(Common.SanitizeEnvVarNameRegexPattern, Common.SanitizeEnvVarNameRegex), - new(Common.SanitizeMemberNameRegexPattern, Common.SanitizeMemberNameRegex), - new(Common.SanitizeNameRegexPattern, Common.SanitizeNameRegex), + new(SwitchArgumentRegexPattern, SwitchArgumentRegex), + new(ObscurePasswordRegexPattern, ObscurePasswordRegex), + new(ExpandTokensRegexPattern, ExpandTokensRegex), + new(SanitizeEnvVarNameRegexPattern, SanitizeEnvVarNameRegex), + new(SanitizeMemberNameRegexPattern, SanitizeMemberNameRegex), + new(SanitizeNameRegexPattern, SanitizeNameRegex), new(Configuration.DefaultTagPrefixRegexPattern, Configuration.DefaultTagPrefixRegex), new(Configuration.DefaultVersionInBranchRegexPattern, Configuration.DefaultVersionInBranchRegex), new(Configuration.MainBranchRegexPattern, Configuration.MainBranchRegex), diff --git a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs index 3830bf8962..68e77ee4fd 100644 --- a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs +++ b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs @@ -118,7 +118,7 @@ private static bool ShouldBeIgnored(ICommit commit, IIgnoreConfiguration ignore) foreach (var groupName in regex.GetGroupNames()) { var groupValue = match.Groups[groupName].Value; - Lazy escapedGroupValueLazy = new(() => groupValue.RegexReplace(RegexPatterns.Common.SanitizeNameRegexPattern, "-")); + Lazy escapedGroupValueLazy = new(() => groupValue.RegexReplace(RegexPatterns.SanitizeNameRegexPattern, "-")); var placeholder = $"{{{groupName}}}"; int index, startIndex = 0; while ((index = label.IndexOf(placeholder, startIndex, StringComparison.InvariantCulture)) >= 0) diff --git a/src/GitVersion.Core/Formatting/InputSanitizer.cs b/src/GitVersion.Core/Formatting/InputSanitizer.cs index a676ec5540..f0f043c05b 100644 --- a/src/GitVersion.Core/Formatting/InputSanitizer.cs +++ b/src/GitVersion.Core/Formatting/InputSanitizer.cs @@ -26,7 +26,7 @@ public string SanitizeEnvVarName(string name) if (name.Length > 200) throw new ArgumentException($"Environment variable name too long: '{name[..20]}...'"); - if (!RegexPatterns.Cache.GetOrAdd(RegexPatterns.Common.SanitizeEnvVarNameRegexPattern).IsMatch(name)) + if (!RegexPatterns.Cache.GetOrAdd(RegexPatterns.SanitizeEnvVarNameRegexPattern).IsMatch(name)) throw new ArgumentException($"Environment variable name contains disallowed characters: '{name}'"); return name; @@ -40,7 +40,7 @@ public string SanitizeMemberName(string memberName) if (memberName.Length > 100) throw new ArgumentException($"Member name too long: '{memberName[..20]}...'"); - if (!RegexPatterns.Cache.GetOrAdd(RegexPatterns.Common.SanitizeMemberNameRegexPattern).IsMatch(memberName)) + if (!RegexPatterns.Cache.GetOrAdd(RegexPatterns.SanitizeMemberNameRegexPattern).IsMatch(memberName)) throw new ArgumentException($"Member name contains disallowed characters: '{memberName}'"); return memberName; diff --git a/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs b/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs index 382b8dfedc..06154aefe5 100644 --- a/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs +++ b/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs @@ -45,7 +45,7 @@ public string FormatWith(T? source, IEnvironment environment) var result = new StringBuilder(); var lastIndex = 0; - foreach (var match in RegexPatterns.Common.ExpandTokensRegex.Matches(template).Cast()) + foreach (var match in RegexPatterns.ExpandTokensRegex.Matches(template).Cast()) { var replacement = EvaluateMatch(match, source, environment); result.Append(template, lastIndex, match.Index - lastIndex); diff --git a/src/GitVersion.Core/Logging/Log.cs b/src/GitVersion.Core/Logging/Log.cs index af82183a0e..e18eef1453 100644 --- a/src/GitVersion.Core/Logging/Log.cs +++ b/src/GitVersion.Core/Logging/Log.cs @@ -58,7 +58,7 @@ public IDisposable IndentLog(string operationDescription) private string FormatMessage(string message, string level) { - var obscuredMessage = RegexPatterns.Common.ObscurePasswordRegex.Replace(message, "$1$2:*******@"); + var obscuredMessage = RegexPatterns.ObscurePasswordRegex.Replace(message, "$1$2:*******@"); var timestamp = $"{DateTime.Now:yy-MM-dd H:mm:ss:ff}"; return string.Format(CultureInfo.InvariantCulture, "{0}{1} [{2}] {3}", this.currentIndentation, level, timestamp, obscuredMessage); } diff --git a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs index 64913a061c..981a45aa8a 100644 --- a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs +++ b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs @@ -42,7 +42,7 @@ public class SemanticVersionFormatValues(SemanticVersion semver, IGitVersionConf public string? BranchName => semver.BuildMetaData.Branch; - public string? EscapedBranchName => semver.BuildMetaData.Branch?.RegexReplace(RegexPatterns.Common.SanitizeNameRegexPattern, "-"); + public string? EscapedBranchName => semver.BuildMetaData.Branch?.RegexReplace(RegexPatterns.SanitizeNameRegexPattern, "-"); public string? Sha => semver.BuildMetaData.Sha; From e2c4890ca3e3cc4058f4293db59393924a1d5067 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Nov 2025 12:55:49 +0000 Subject: [PATCH 035/358] (docs deps): Bump js-yaml from 4.1.0 to 4.1.1 Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index b2349ae19b..8b5df93612 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3336,9 +3336,9 @@ "dev": true }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "peer": true, "dependencies": { @@ -17579,9 +17579,9 @@ "dev": true }, "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "peer": true, "requires": { From 2c0df38369334041639abebf1401684b4e168e01 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 17 Nov 2025 16:26:03 +0100 Subject: [PATCH 036/358] updates .net version in devcontainer updates the .net version in the devcontainer to 10.0. --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index df058170ac..5f35c29825 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/devcontainers/dotnet:dev-9.0 +FROM mcr.microsoft.com/devcontainers/dotnet:dev-10.0 # [Optional] Uncomment this section to install additional OS packages. # RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ From 567108423b77bb6316a1e86c1e1fa847235f8dad Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 17 Nov 2025 23:03:10 +0100 Subject: [PATCH 037/358] adapts msbuild tasks execution adapts msbuild tasks execution to use action with task parameter. removes net framework check on GitVersionTask. adds condition to msbuild targets. --- .../Extensions/ReferenceNameExtensions.cs | 4 +++- src/GitVersion.MsBuild/GitVersionTasks.cs | 12 ++++++------ .../msbuild/tools/GitVersion.MsBuild.props | 6 ------ .../msbuild/tools/GitVersion.MsBuild.targets | 13 +++++++++---- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs b/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs index 184421b020..69b6492e93 100644 --- a/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs +++ b/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs @@ -17,7 +17,9 @@ public bool TryGetSemanticVersion(IGitVersionConfiguration configuration, out Se private bool TryGetSemanticVersion(string? versionPatternPattern, string? tagPrefix, - SemanticVersionFormat format, out SemanticVersionResult result) + SemanticVersionFormat format, + // ReSharper disable once OutParameterValueIsAlwaysDiscarded.Local + out SemanticVersionResult result) { var versionPatternRegex = RegexPatterns.Cache.GetOrAdd(GetVersionInBranchPattern(versionPatternPattern)); result = default; diff --git a/src/GitVersion.MsBuild/GitVersionTasks.cs b/src/GitVersion.MsBuild/GitVersionTasks.cs index d0860b20e9..70cb0b5b98 100644 --- a/src/GitVersion.MsBuild/GitVersionTasks.cs +++ b/src/GitVersion.MsBuild/GitVersionTasks.cs @@ -17,21 +17,21 @@ public static bool Execute(GitVersionTaskBase task) var executor = serviceProvider.GetRequiredService(); return task switch { - GetVersion getVersion => ExecuteGitVersionTask(getVersion, () => executor.GetVersion(getVersion)), - UpdateAssemblyInfo updateAssemblyInfo => ExecuteGitVersionTask(updateAssemblyInfo, () => executor.UpdateAssemblyInfo(updateAssemblyInfo)), - GenerateGitVersionInformation generateGitVersionInformation => ExecuteGitVersionTask(generateGitVersionInformation, () => executor.GenerateGitVersionInformation(generateGitVersionInformation)), - WriteVersionInfoToBuildLog writeVersionInfoToBuildLog => ExecuteGitVersionTask(writeVersionInfoToBuildLog, () => executor.WriteVersionInfoToBuildLog(writeVersionInfoToBuildLog)), + GetVersion getVersion => ExecuteGitVersionTask(getVersion, executor.GetVersion), + UpdateAssemblyInfo updateAssemblyInfo => ExecuteGitVersionTask(updateAssemblyInfo, executor.UpdateAssemblyInfo), + GenerateGitVersionInformation generateGitVersionInformation => ExecuteGitVersionTask(generateGitVersionInformation, executor.GenerateGitVersionInformation), + WriteVersionInfoToBuildLog writeVersionInfoToBuildLog => ExecuteGitVersionTask(writeVersionInfoToBuildLog, executor.WriteVersionInfoToBuildLog), _ => throw new NotSupportedException($"Task type {task.GetType().Name} is not supported") }; } - private static bool ExecuteGitVersionTask(T task, Action action) + private static bool ExecuteGitVersionTask(T task, Action action) where T : GitVersionTaskBase { var taskLog = task.Log; try { - action(); + action(task); } catch (WarningException errorException) { diff --git a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props index c497718e77..60165e0d08 100644 --- a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props +++ b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props @@ -21,12 +21,6 @@ - - true - false diff --git a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets index b8f08113ea..562c2cde2b 100644 --- a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets +++ b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets @@ -18,10 +18,15 @@ $([MSBuild]::EnsureTrailingSlash($(MSBuildThisFileDirectory)$(GitVersionTargetFramework)))GitVersion.MsBuild.dll - - - - + + + + + + + + + From 86c66453aac6dd520e92f5cff290e92594bf3940 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 18 Nov 2025 00:39:12 +0100 Subject: [PATCH 038/358] enable testing with Full Framework This enabled testing the GitVersion.MsBuild with the full .NET Framework's version of msbuild --- .../Tasks/ArtifactsMsBuildFullTest.cs | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs b/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs index f4d34e623e..6551b6475b 100644 --- a/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs +++ b/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs @@ -19,9 +19,13 @@ public override void Run(BuildContext context) if (context.Version == null) return; var version = context.Version.NugetVersion; + var fullSemVer = context.Version.GitVersion.FullSemVer; var nugetSource = context.MakeAbsolute(Paths.Nuget).FullPath; + const int toolVersionValue = 11; // Workaround for now. It should be removed when https://github.com/cake-build/cake/issues/4658 is merged + var isMsBuildToolVersionValid = Enum.IsDefined(typeof(MSBuildToolVersion), toolVersionValue); + context.Information("\nTesting msbuild task with dotnet build\n"); foreach (var netVersion in Constants.DotnetVersions) { @@ -40,7 +44,27 @@ public override void Run(BuildContext context) }); var exe = Paths.Integration.Combine("build").Combine(framework).CombineWithFilePath("app.dll"); - context.ValidateOutput("dotnet", exe.FullPath, context.Version.GitVersion.FullSemVer); + context.ValidateOutput("dotnet", exe.FullPath, fullSemVer); + + if (!isMsBuildToolVersionValid) continue; + + const MSBuildToolVersion toolVersion = (MSBuildToolVersion)toolVersionValue; + context.Information("\nTesting msbuild task with msbuild (for full framework)\n"); + + var msBuildSettings = new MSBuildSettings + { + Verbosity = Verbosity.Minimal, + ToolVersion = toolVersion, + Restore = true + }; + + msBuildSettings.WithProperty("GitVersionMsBuildVersion", version); + msBuildSettings.WithProperty("RestoreSource", nugetSource); + + context.MSBuild(projPath.FullPath, msBuildSettings); + + var fullExe = Paths.Integration.Combine("build").CombineWithFilePath("app.exe"); + context.ValidateOutput(fullExe.FullPath, null, fullSemVer); } } } From 9aa4c703ce7da5cd6b46864b398897a81f7ab186 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 18 Nov 2025 01:03:07 +0100 Subject: [PATCH 039/358] disables task on msbuild version <18 disables GitVersion task on .NET Framework with MSBuild < 18. updates conditions for UsingTask to use explicit string comparisons. --- .../msbuild/tools/GitVersion.MsBuild.props | 6 ++++++ .../msbuild/tools/GitVersion.MsBuild.targets | 18 +++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props index 60165e0d08..0b63e3feee 100644 --- a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props +++ b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.props @@ -21,6 +21,12 @@ + + true + false diff --git a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets index 562c2cde2b..adb0f1e6bd 100644 --- a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets +++ b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets @@ -18,15 +18,15 @@ $([MSBuild]::EnsureTrailingSlash($(MSBuildThisFileDirectory)$(GitVersionTargetFramework)))GitVersion.MsBuild.dll - - - - - - - - - + + + + + + + + + From 5ff0b5f7bb9525834c615c0dae7fc445232aef80 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Nov 2025 12:55:52 +0000 Subject: [PATCH 040/358] (deps): Bump Scriban from 6.5.0 to 6.5.1 --- updated-dependencies: - dependency-name: Scriban dependency-version: 6.5.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 8c56f4a969..de2c075afd 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -25,7 +25,7 @@ - + From 6f44a7276c4a06e64ea76b4c8b0a82d31a2134b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 12:26:52 +0000 Subject: [PATCH 041/358] (build deps): Bump jetbrains/qodana-action from 2025.2.1 to 2025.2.2 Bumps [jetbrains/qodana-action](https://github.com/jetbrains/qodana-action) from 2025.2.1 to 2025.2.2. - [Release notes](https://github.com/jetbrains/qodana-action/releases) - [Commits](https://github.com/jetbrains/qodana-action/compare/v2025.2.1...v2025.2.2) --- updated-dependencies: - dependency-name: jetbrains/qodana-action dependency-version: 2025.2.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/qodana_analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/qodana_analysis.yml b/.github/workflows/qodana_analysis.yml index 3d7c0e1eca..1b875c15f3 100644 --- a/.github/workflows/qodana_analysis.yml +++ b/.github/workflows/qodana_analysis.yml @@ -26,7 +26,7 @@ jobs: global-json-file: global.json - name: 'Qodana Scan' - uses: jetbrains/qodana-action@v2025.2.1 + uses: jetbrains/qodana-action@v2025.2.2 with: args: --baseline,qodana.sarif.json cache-default-branch-only: true From 179e27cbeca379711d75c87c2e16d1bb4562f277 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 12:49:25 +0000 Subject: [PATCH 042/358] (deps): Bump the microsoft group with 1 update Bumps Microsoft.CodeAnalysis.CSharp from 4.14.0 to 5.0.0 --- updated-dependencies: - dependency-name: Microsoft.CodeAnalysis.CSharp dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.CodeAnalysis.CSharp dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 8 ++++---- src/Directory.Packages.props | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index de2c075afd..c26eac92d1 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -6,10 +6,10 @@ - + - - + + @@ -34,4 +34,4 @@ - \ No newline at end of file + diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index ac18ad4e00..39abe274dd 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -8,10 +8,10 @@ - - - - + + + + From 32e9df3ddfe7873d123b20bb6fd14fd75f66ddf4 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 21 Nov 2025 07:54:05 +0100 Subject: [PATCH 043/358] caches net10.0 reference assemblies caches the ReferenceAssemblies.Net100 to prevent redundant object creation. --- new-cli/GitVersion.Cli.Generator.Tests/Extensions.cs | 8 +++++--- .../SystemCommandlineGeneratorTests.cs | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/new-cli/GitVersion.Cli.Generator.Tests/Extensions.cs b/new-cli/GitVersion.Cli.Generator.Tests/Extensions.cs index cbab2336a9..9f1c837ecf 100644 --- a/new-cli/GitVersion.Cli.Generator.Tests/Extensions.cs +++ b/new-cli/GitVersion.Cli.Generator.Tests/Extensions.cs @@ -4,9 +4,11 @@ namespace GitVersion.Cli.Generator.Tests; public static class Extensions { - extension(ReferenceAssemblies) + private static readonly Lazy LazyNet100 = new(() => + new("net10.0", new PackageIdentity("Microsoft.NETCore.App.Ref", "10.0.0"), Path.Combine("ref", "net10.0"))); + + extension(ReferenceAssemblies.Net) { - public static ReferenceAssemblies Net10 => - new("net10.0", new PackageIdentity("Microsoft.NETCore.App.Ref", "10.0.0"), Path.Combine("ref", "net10.0")); + public static ReferenceAssemblies Net100 => LazyNet100.Value; } } diff --git a/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs b/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs index 389466ebbe..ef1e150bcf 100644 --- a/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs +++ b/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs @@ -252,7 +252,7 @@ public async Task ValidateGeneratedCommandImplementation() (generatorType,"RootCommandImpl.g.cs", ExpectedRootCommandImplText), (generatorType,"CliAppImpl.g.cs", ExpectedCliAppImplText), }, - ReferenceAssemblies = ReferenceAssemblies.Net10, + ReferenceAssemblies = ReferenceAssemblies.Net.Net100, AdditionalReferences = { MetadataReference.CreateFromFile(typeof(ILogger).Assembly.Location), From 5c52cbb94361ded7bc912df31564e64e58b725c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Nov 2025 12:27:18 +0000 Subject: [PATCH 044/358] (build deps): Bump actions/checkout from 5 to 6 in the actions group Bumps the actions group with 1 update: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 5 to 6 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] --- .github/workflows/_artifacts_linux.yml | 2 +- .github/workflows/_artifacts_windows.yml | 2 +- .github/workflows/_build.yml | 2 +- .github/workflows/_docker.yml | 2 +- .github/workflows/_docker_manifests.yml | 2 +- .github/workflows/_prepare.yml | 4 ++-- .github/workflows/_publish.yml | 2 +- .github/workflows/_unit_tests.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/docs.yml | 6 +++--- .github/workflows/format.yml | 2 +- .github/workflows/mkdocs.yml | 4 ++-- .github/workflows/new-cli.yml | 2 +- .github/workflows/public-api.yml | 2 +- .github/workflows/qodana_analysis.yml | 2 +- .github/workflows/release.yml | 2 +- 17 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/_artifacts_linux.yml b/.github/workflows/_artifacts_linux.yml index f7091bdfc5..a0633f41d0 100644 --- a/.github/workflows/_artifacts_linux.yml +++ b/.github/workflows/_artifacts_linux.yml @@ -30,7 +30,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - diff --git a/.github/workflows/_artifacts_windows.yml b/.github/workflows/_artifacts_windows.yml index fb7c2e0696..31486885be 100644 --- a/.github/workflows/_artifacts_windows.yml +++ b/.github/workflows/_artifacts_windows.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - diff --git a/.github/workflows/_build.yml b/.github/workflows/_build.yml index c34e570287..835f7f8f7e 100644 --- a/.github/workflows/_build.yml +++ b/.github/workflows/_build.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - diff --git a/.github/workflows/_docker.yml b/.github/workflows/_docker.yml index cd415edfa5..b070134d5f 100644 --- a/.github/workflows/_docker.yml +++ b/.github/workflows/_docker.yml @@ -30,7 +30,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - diff --git a/.github/workflows/_docker_manifests.yml b/.github/workflows/_docker_manifests.yml index 0fb895ec27..e3738909be 100644 --- a/.github/workflows/_docker_manifests.yml +++ b/.github/workflows/_docker_manifests.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - diff --git a/.github/workflows/_prepare.yml b/.github/workflows/_prepare.yml index 4a0abe2050..ffe8340d47 100644 --- a/.github/workflows/_prepare.yml +++ b/.github/workflows/_prepare.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Cache cake frosting id: cache-cake @@ -61,7 +61,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Restore State uses: ./.github/actions/cache-restore diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index 6f73aa4bc7..c8af9ec576 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index 286445f3bf..a0fd3fe2ac 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2421ae3dd3..73b3c3b334 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -124,7 +124,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index d7b987b896..1966b69e27 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -49,7 +49,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index f3874e8c13..93f79f901c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -38,7 +38,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - @@ -91,7 +91,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - @@ -130,7 +130,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index ffe858459c..8c2ba5f079 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -39,7 +39,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup .NET SDK uses: actions/setup-dotnet@v5 diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 126128ed88..526427a09b 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -34,13 +34,13 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 if: github.event_name == 'push' with: token: ${{ secrets.PUSH_GITHUB_TOKEN }} - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 if: github.event_name == 'pull_request' - name: Setup .NET SDK diff --git a/.github/workflows/new-cli.yml b/.github/workflows/new-cli.yml index 6793b7eee4..5fd7034189 100644 --- a/.github/workflows/new-cli.yml +++ b/.github/workflows/new-cli.yml @@ -39,7 +39,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup .NET SDK uses: actions/setup-dotnet@v5 diff --git a/.github/workflows/public-api.yml b/.github/workflows/public-api.yml index 97898f72ff..418c45f7c0 100644 --- a/.github/workflows/public-api.yml +++ b/.github/workflows/public-api.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 if: github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' with: token: ${{ secrets.PUSH_GITHUB_TOKEN }} diff --git a/.github/workflows/qodana_analysis.yml b/.github/workflows/qodana_analysis.yml index 1b875c15f3..76daa8ccbf 100644 --- a/.github/workflows/qodana_analysis.yml +++ b/.github/workflows/qodana_analysis.yml @@ -15,7 +15,7 @@ jobs: checks: write steps: - - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c663002892..521ac0f921 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,7 +10,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Get version id: get-version From 66e620428c845176a6187d0920b43c5f6c8227b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Nov 2025 12:44:11 +0000 Subject: [PATCH 045/358] (deps): Bump the serilog group with 1 update Bumps Serilog.Extensions.Logging from 9.0.2 to 10.0.0 --- updated-dependencies: - dependency-name: Serilog.Extensions.Logging dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: serilog ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index c26eac92d1..40a88bf8c2 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -26,7 +26,7 @@ - + From e7271c6acc66fbe080ad2656066f254a71d4ed76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 23 Nov 2025 21:15:34 +0000 Subject: [PATCH 046/358] (deps): Bump the microsoft group with 1 update Bumps System.IO.Abstractions from 22.0.16 to 22.1.0 --- updated-dependencies: - dependency-name: System.IO.Abstractions dependency-version: 22.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: System.IO.Abstractions dependency-version: 22.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 39abe274dd..647bd164b7 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -41,7 +41,7 @@ - + From 31c4f92d7c5d7adbc471f944991c8947cd3f464c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 13:50:03 +0000 Subject: [PATCH 047/358] (deps): Bump Polly from 8.6.4 to 8.6.5 --- updated-dependencies: - dependency-name: Polly dependency-version: 8.6.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 40a88bf8c2..7ec1e48fe8 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -21,7 +21,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + From df66389be4ece4ad9bc72641c647278eed54c3b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 13:27:54 +0000 Subject: [PATCH 048/358] (deps): Bump the microsoft group with 1 update Bumps System.IO.Abstractions from 22.0.16 to 22.1.0 --- updated-dependencies: - dependency-name: System.IO.Abstractions dependency-version: 22.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 7ec1e48fe8..d41680dc51 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -31,7 +31,7 @@ - + From 8f40a5fa67c8064531444e23ae9e8edbcd21983f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Nov 2025 12:55:52 +0000 Subject: [PATCH 049/358] (deps): Bump Scriban from 6.5.1 to 6.5.2 --- updated-dependencies: - dependency-name: Scriban dependency-version: 6.5.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index d41680dc51..8a92219fa2 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -25,7 +25,7 @@ - + From 178b1d370de3ad4f04835692ac27674819f7a358 Mon Sep 17 00:00:00 2001 From: "david@DAVID-PC" <3200210+davidjenni@users.noreply.github.com> Date: Tue, 25 Nov 2025 14:30:22 -0800 Subject: [PATCH 050/358] fix: /diag behaves like a proper boolean switch before fix, order of arguments mattered: - unless /diag is last argument, it is ignored; and the following argument is swalloed silently /diag /l gv.log -> diagnostic switch is ignored, no log file is created /l console /diag -> diagnostic output is emitted to console /l gv.log /diag -> diagnostic output is emitted to log file --- src/GitVersion.App/ArgumentParser.cs | 6 +----- src/GitVersion.App/ArgumentParserExtensions.cs | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/GitVersion.App/ArgumentParser.cs b/src/GitVersion.App/ArgumentParser.cs index 1f85a1b3d2..d7b4df31bc 100644 --- a/src/GitVersion.App/ArgumentParser.cs +++ b/src/GitVersion.App/ArgumentParser.cs @@ -212,11 +212,7 @@ private static bool ParseSwitches(Arguments arguments, string? name, IReadOnlyLi if (name.IsSwitch("diag")) { - if (value?.IsTrue() != false) - { - arguments.Diag = true; - } - + arguments.Diag = true; return true; } diff --git a/src/GitVersion.App/ArgumentParserExtensions.cs b/src/GitVersion.App/ArgumentParserExtensions.cs index 7d0dade040..286849c44b 100644 --- a/src/GitVersion.App/ArgumentParserExtensions.cs +++ b/src/GitVersion.App/ArgumentParserExtensions.cs @@ -73,7 +73,7 @@ public bool IsSwitch(string switchName) public bool ArgumentRequiresValue(int argumentIndex) { - var booleanArguments = new[] { "updateassemblyinfo", "ensureassemblyinfo", "nofetch", "nonormalize", "nocache", "allowshallow" }; + var booleanArguments = new[] { "updateassemblyinfo", "ensureassemblyinfo", "nofetch", "nonormalize", "nocache", "allowshallow", "diag" }; var argumentMightRequireValue = !booleanArguments.Contains(singleArgument[1..], StringComparer.OrdinalIgnoreCase); From 0b5484647c12494e690278d71115b2241482b0cc Mon Sep 17 00:00:00 2001 From: "david@DAVID-PC" <3200210+davidjenni@users.noreply.github.com> Date: Tue, 25 Nov 2025 14:50:20 -0800 Subject: [PATCH 051/358] test: -diag switch order in arg list doesn't matter --- src/GitVersion.App.Tests/ArgumentParserTests.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/GitVersion.App.Tests/ArgumentParserTests.cs b/src/GitVersion.App.Tests/ArgumentParserTests.cs index 42e7c36304..911c1f0812 100644 --- a/src/GitVersion.App.Tests/ArgumentParserTests.cs +++ b/src/GitVersion.App.Tests/ArgumentParserTests.cs @@ -636,6 +636,21 @@ public void AllowshallowTrueWhenDefined() arguments.AllowShallow.ShouldBe(true); } + [Test] + public void DiagTrueWhenDefined() + { + var arguments = this.argumentParser.ParseArguments("-diag"); + arguments.Diag.ShouldBe(true); + } + + [Test] + public void DiagAndLogToConsoleIsNotIgnored() + { + var arguments = this.argumentParser.ParseArguments("-diag -l console"); + arguments.Diag.ShouldBe(true); + arguments.LogFilePath.ShouldBe("console"); + } + [Test] public void OtherArgumentsCanBeParsedBeforeNofetch() { From fe059ca5b74ea568430c954de86898e8400f4826 Mon Sep 17 00:00:00 2001 From: "david@david-m2" <3200210+davidjenni@users.noreply.github.com> Date: Wed, 26 Nov 2025 12:10:03 -0800 Subject: [PATCH 052/358] doc: /diag now requires a /l argument to select output stream --- docs/input/docs/usage/cli/arguments.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/input/docs/usage/cli/arguments.md b/docs/input/docs/usage/cli/arguments.md index c8a95ddbc5..d873130986 100644 --- a/docs/input/docs/usage/cli/arguments.md +++ b/docs/input/docs/usage/cli/arguments.md @@ -24,7 +24,8 @@ GitVersion [path] path The directory containing .git. If not defined current directory is used. (Must be first argument) /version Displays the version of GitVersion - /diag Runs GitVersion with additional diagnostic information + /diag Runs GitVersion with additional diagnostic information; + also needs the '/l' argument to specify a logfile or stdout (requires git.exe to be installed) /h or /? Shows Help @@ -41,7 +42,7 @@ GitVersion [path] Supports C# format strings - see [Format Strings](/docs/reference/custom-formatting) for details. E.g. /output json /format {SemVer} - will output `1.2.3+beta.4` /output json /format {Major}.{Minor} - will output `1.2` - /l Path to logfile. + /l Path to logfile; specify 'console' to emit to stdout. /config Path to config file (defaults to GitVersion.yml, GitVersion.yaml, .GitVersion.yml or .GitVersion.yaml) /showconfig Outputs the effective GitVersion config (defaults + custom from GitVersion.yml, GitVersion.yaml, .GitVersion.yml or .GitVersion.yaml) in yaml format From dc77d63aaaf197e5ec29409bd59284851dfd1e9c Mon Sep 17 00:00:00 2001 From: "david@david-m2" <3200210+davidjenni@users.noreply.github.com> Date: Wed, 26 Nov 2025 12:12:17 -0800 Subject: [PATCH 053/358] test: adding test for /diag argument in help text --- src/GitVersion.App.Tests/HelpWriterTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/GitVersion.App.Tests/HelpWriterTests.cs b/src/GitVersion.App.Tests/HelpWriterTests.cs index 38ef352b1f..f9d5f61a78 100644 --- a/src/GitVersion.App.Tests/HelpWriterTests.cs +++ b/src/GitVersion.App.Tests/HelpWriterTests.cs @@ -27,6 +27,7 @@ public void AllArgsAreInHelp() { nameof(Arguments.ClonePath), "/dynamicRepoLocation" }, { nameof(Arguments.CommitId), "/c" }, + { nameof(Arguments.Diag) , "/diag" }, { nameof(Arguments.LogFilePath) , "/l" }, { nameof(Arguments.Verbosity), "/verbosity" }, { nameof(Arguments.Output) , "/output" }, From dda76c4f129c8bbb717e46c18b05f020be862684 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Nov 2025 13:00:39 +0000 Subject: [PATCH 054/358] (deps): Bump Polly from 8.6.4 to 8.6.5 --- updated-dependencies: - dependency-name: Polly dependency-version: 8.6.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 647bd164b7..d6d2af3c30 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -16,7 +16,7 @@ - + From fff9b55f2f5dd615f70dbed32f8c4ed15fa00caa Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Thu, 27 Nov 2025 15:49:49 +0100 Subject: [PATCH 055/358] updates dependencies in package-lock.json --- package-lock.json | 308 +++++++++++++++++++++++----------------------- 1 file changed, 152 insertions(+), 156 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8b5df93612..7d0d29f92e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -254,27 +254,25 @@ } }, "node_modules/@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", - "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.28.4.tgz", + "integrity": "sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" + "core-js-pure": "^3.43.0" }, "engines": { "node": ">=6.9.0" @@ -338,6 +336,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -355,6 +354,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -408,10 +408,11 @@ } }, "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -458,6 +459,7 @@ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -904,10 +906,11 @@ "dev": true }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -1234,11 +1237,12 @@ } }, "node_modules/core-js-pure": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz", - "integrity": "sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.47.0.tgz", + "integrity": "sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "peer": true, "funding": { "type": "opencollective", @@ -1246,10 +1250,11 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2810,15 +2815,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/html-url-attributes": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", @@ -3111,6 +3107,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3312,16 +3309,14 @@ "dev": true }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -3511,6 +3506,13 @@ "node": ">=8" } }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/markdown-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", @@ -4589,10 +4591,11 @@ "dev": true }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -4975,6 +4978,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -5182,30 +5192,22 @@ "peer": true }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -5392,13 +5394,6 @@ "node": ">=8.10.0" } }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true, - "peer": true - }, "node_modules/regexp.prototype.flags": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", @@ -13805,6 +13800,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -13819,6 +13815,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -13827,13 +13824,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -13930,6 +13929,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -13942,6 +13942,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -14225,41 +14226,42 @@ "dev": true }, "node_modules/unified-engine/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/unified-engine/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/unified-engine/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -14942,6 +14944,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -14960,6 +14963,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -14977,6 +14981,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -14985,13 +14990,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -15006,6 +15013,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -15014,10 +15022,11 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -15030,6 +15039,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -15258,24 +15268,20 @@ } }, "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "dev": true, - "peer": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } + "peer": true }, "@babel/runtime-corejs3": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", - "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.28.4.tgz", + "integrity": "sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ==", "dev": true, "peer": true, "requires": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" + "core-js-pure": "^3.43.0" } }, "@eslint/eslintrc": { @@ -15386,9 +15392,9 @@ }, "dependencies": { "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "requires": { "balanced-match": "^1.0.0" @@ -15784,9 +15790,9 @@ "dev": true }, "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "peer": true, "requires": { @@ -16020,16 +16026,16 @@ "dev": true }, "core-js-pure": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz", - "integrity": "sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.47.0.tgz", + "integrity": "sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==", "dev": true, "peer": true }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -17216,14 +17222,6 @@ "dev": true, "requires": { "lru-cache": "^10.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "dev": true - } } }, "html-url-attributes": { @@ -17563,9 +17561,9 @@ "dev": true }, "jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "requires": { "@isaacs/cliui": "^8.0.2", @@ -17719,6 +17717,12 @@ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true }, + "lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, "markdown-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", @@ -18488,9 +18492,9 @@ "dev": true }, "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true }, "mkdirp": { @@ -18754,6 +18758,12 @@ "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", "dev": true }, + "package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -18911,21 +18921,13 @@ "peer": true }, "path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "requires": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "dev": true - } } }, "picomatch": { @@ -19064,13 +19066,6 @@ "picomatch": "^2.2.1" } }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true, - "peer": true - }, "regexp.prototype.flags": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", @@ -26019,31 +26014,32 @@ "dev": true }, "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "requires": { "balanced-match": "^1.0.0" } }, "glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" } }, "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -26600,9 +26596,9 @@ }, "dependencies": { "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true }, "string-width": { From 01c42647ce3d6db32caf7a0e0ed615a645de7b9a Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Thu, 27 Nov 2025 16:03:02 +0100 Subject: [PATCH 056/358] simplifies conditional expressions simplifies conditional expressions in GitHub workflow files for better readability. --- .github/workflows/_unit_tests.yml | 2 +- .github/workflows/ci.yml | 12 ++++++------ .github/workflows/docs.yml | 7 +------ 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index a0fd3fe2ac..f12e689fc3 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -42,6 +42,6 @@ jobs: - name: Test Summary uses: test-summary/action@v2.4 - if: ${{ always() && matrix.dotnet_version == '10.0' }} + if: always() && matrix.dotnet_version == '10.0' with: paths: artifacts/test-results/*.results.xml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 73b3c3b334..0ecebfe4a8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ on: - '!docs/**' merge_group: types: [checks_requested] - + repository_dispatch: types: [ ci-release ] @@ -43,7 +43,7 @@ jobs: prepare: name: Prepare uses: ./.github/workflows/_prepare.yml - + build: name: Build & Package needs: [ prepare ] @@ -135,11 +135,11 @@ jobs: uses: ./.github/actions/artifacts-restore - name: Attetstation - if: ${{ github.event_name == 'repository_dispatch' }} + if: github.event_name == 'repository_dispatch' uses: ./.github/actions/artifacts-attest - name: DockerHub Publish Readme - if: ${{ github.event_name == 'repository_dispatch' }} + if: github.event_name == 'repository_dispatch' shell: pwsh run: dotnet run/docker.dll --target=DockerHubReadmePublish env: @@ -151,10 +151,10 @@ jobs: run: dotnet run/release.dll --target=PublishRelease - name: '[Publish Release]' - if: ${{ github.event_name == 'repository_dispatch' }} + if: github.event_name == 'repository_dispatch' uses: peter-evans/repository-dispatch@v4 with: token: ${{ secrets.RELEASE_GITHUB_TOKEN }} repository: ${{ github.repository }} event-type: publish-release - client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "tag": "${{ github.event.client_payload.tag }}"}' \ No newline at end of file + client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "tag": "${{ github.event.client_payload.tag }}"}' diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 93f79f901c..3c3aa34a9c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -142,11 +142,6 @@ jobs: run: dotnet run/docs.dll --target=GenerateSchemas - name: '[Publish Documentation]' - if: ${{ github.event_name == 'repository_dispatch' }} - shell: pwsh - run: dotnet run/docs.dll --target=PublishDocs - - - name: '[Publish Documentation]' - if: ${{ github.event_name == 'workflow_dispatch' }} + if: github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' shell: pwsh run: dotnet run/docs.dll --target=PublishDocs --force From be31a55b8d73d5602dc1a4abe211b4ae682e7109 Mon Sep 17 00:00:00 2001 From: gittools-bot Date: Thu, 27 Nov 2025 16:00:16 +0000 Subject: [PATCH 057/358] Mark public API as shipped --- src/GitVersion.Core/PublicAPI.Shipped.txt | 60 +++++++++++++++++++ src/GitVersion.Core/PublicAPI.Unshipped.txt | 60 ------------------- .../PublicAPI.Shipped.txt | 2 + .../PublicAPI.Unshipped.txt | 2 - 4 files changed, 62 insertions(+), 62 deletions(-) diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index cb9026d29a..286d1d2964 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -84,6 +84,7 @@ GitVersion.Configuration.EffectiveConfiguration.PreventIncrementWhenBranchMerged GitVersion.Configuration.EffectiveConfiguration.PreventIncrementWhenCurrentCommitTagged.get -> bool GitVersion.Configuration.EffectiveConfiguration.RegularExpression.get -> string? GitVersion.Configuration.EffectiveConfiguration.SemanticVersionFormat.get -> GitVersion.SemanticVersionFormat +GitVersion.Configuration.EffectiveConfiguration.TagPrefixPattern.get -> string? GitVersion.Configuration.EffectiveConfiguration.TagPreReleaseWeight.get -> int GitVersion.Configuration.EffectiveConfiguration.TrackMergeMessage.get -> bool GitVersion.Configuration.EffectiveConfiguration.TrackMergeTarget.get -> bool @@ -150,6 +151,9 @@ GitVersion.Configuration.IPreventIncrementConfiguration.OfMergedBranch.get -> bo GitVersion.Configuration.IPreventIncrementConfiguration.WhenBranchMerged.get -> bool? GitVersion.Configuration.IPreventIncrementConfiguration.WhenCurrentCommitTagged.get -> bool? GitVersion.Configuration.ReferenceNameExtensions +GitVersion.Configuration.ReferenceNameExtensions.extension(GitVersion.Git.ReferenceName!) +GitVersion.Configuration.ReferenceNameExtensions.extension(GitVersion.Git.ReferenceName!).TryGetSemanticVersion(GitVersion.Configuration.EffectiveConfiguration! configuration, out (GitVersion.SemanticVersion! Value, string? Name) result) -> bool +GitVersion.Configuration.ReferenceNameExtensions.extension(GitVersion.Git.ReferenceName!).TryGetSemanticVersion(GitVersion.Configuration.IGitVersionConfiguration! configuration, out (GitVersion.SemanticVersion! Value, string? Name) result) -> bool GitVersion.ConfigurationInfo GitVersion.ConfigurationInfo.ConfigurationFile -> string? GitVersion.ConfigurationInfo.ConfigurationInfo() -> void @@ -157,13 +161,28 @@ GitVersion.ConfigurationInfo.ConfigurationInfo(GitVersion.ConfigurationInfo! ori GitVersion.ConfigurationInfo.OverrideConfiguration -> System.Collections.Generic.IReadOnlyDictionary? GitVersion.ConfigurationInfo.ShowConfiguration -> bool GitVersion.Extensions.AssemblyVersionsGeneratorExtensions +GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.extension(GitVersion.SemanticVersion!) +GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.extension(GitVersion.SemanticVersion!).GetAssemblyFileVersion(GitVersion.Configuration.AssemblyFileVersioningScheme scheme) -> string? +GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.extension(GitVersion.SemanticVersion!).GetAssemblyVersion(GitVersion.Configuration.AssemblyVersioningScheme scheme) -> string? GitVersion.Extensions.CommonExtensions GitVersion.Extensions.EnumerableExtensions GitVersion.Extensions.FileSystemExtensions +GitVersion.Extensions.FileSystemExtensions.extension(System.IO.Abstractions.IFileSystem!) +GitVersion.Extensions.FileSystemExtensions.extension(System.IO.Abstractions.IFileSystem!).FindGitDir(string? path) -> (string! GitDirectory, string! WorkingTreeDirectory)? +GitVersion.Extensions.FileSystemExtensions.extension(System.IO.Abstractions.IFileSystem!).GetLastDirectoryWrite(string! path) -> long GitVersion.Extensions.GitExtensions GitVersion.Extensions.IncrementStrategyExtensions +GitVersion.Extensions.IncrementStrategyExtensions.extension(GitVersion.IncrementStrategy) +GitVersion.Extensions.IncrementStrategyExtensions.extension(GitVersion.IncrementStrategy).ToVersionField() -> GitVersion.VersionField GitVersion.Extensions.ReadEmbeddedResourceExtensions +GitVersion.Extensions.ReadEmbeddedResourceExtensions.extension(string!) +GitVersion.Extensions.ReadEmbeddedResourceExtensions.extension(string!).ReadAsStringFromEmbeddedResource(System.Reflection.Assembly! assembly) -> string! +GitVersion.Extensions.ReadEmbeddedResourceExtensions.extension(string!).ReadAsStringFromEmbeddedResource() -> string! GitVersion.Extensions.ServiceCollectionExtensions +GitVersion.Extensions.ServiceCollectionExtensions.extension(Microsoft.Extensions.DependencyInjection.IServiceCollection!) +GitVersion.Extensions.ServiceCollectionExtensions.extension(Microsoft.Extensions.DependencyInjection.IServiceCollection!).AddModule(GitVersion.IGitVersionModule! gitVersionModule) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +GitVersion.Extensions.ServiceCollectionExtensions.extension(System.IServiceProvider!) +GitVersion.Extensions.ServiceCollectionExtensions.extension(System.IServiceProvider!).GetServiceForType() -> TService GitVersion.Extensions.StringExtensions GitVersion.FileWriteInfo GitVersion.FileWriteInfo.$() -> GitVersion.FileWriteInfo! @@ -220,6 +239,7 @@ GitVersion.Git.IBranchCollection.UpdateTrackedBranch(GitVersion.Git.IBranch! bra GitVersion.Git.ICommit GitVersion.Git.ICommit.DiffPaths.get -> System.Collections.Generic.IReadOnlyList! GitVersion.Git.ICommit.Id.get -> GitVersion.Git.IObjectId! +GitVersion.Git.ICommit.IsMergeCommit.get -> bool GitVersion.Git.ICommit.Message.get -> string! GitVersion.Git.ICommit.Parents.get -> System.Collections.Generic.IReadOnlyList! GitVersion.Git.ICommit.Sha.get -> string! @@ -394,11 +414,38 @@ GitVersion.Logging.ILog.IndentLog(string! operationDescription) -> System.IDispo GitVersion.Logging.ILog.Separator() -> void GitVersion.Logging.ILog.Verbosity.get -> GitVersion.Logging.Verbosity GitVersion.Logging.ILog.Verbosity.set -> void +GitVersion.Logging.ILog.Write(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogLevel level, string! format, params object?[]! args) -> void GitVersion.Logging.ILogAppender GitVersion.Logging.ILogAppender.WriteTo(GitVersion.Logging.LogLevel level, string! message) -> void GitVersion.Logging.LogAction GitVersion.Logging.LogActionEntry GitVersion.Logging.LogExtensions +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!) +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Debug(GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Debug(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Debug(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Debug(string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).DiagnosticVerbosity() -> System.IDisposable! +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Error(GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Error(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Error(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Error(string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Info(GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Info(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Info(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Info(string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).MinimalVerbosity() -> System.IDisposable! +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).NormalVerbosity() -> System.IDisposable! +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).QuietVerbosity() -> System.IDisposable! +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Verbose(GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Verbose(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Verbose(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Verbose(string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).VerboseVerbosity() -> System.IDisposable! +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Warning(GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Warning(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Warning(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Warning(string! format, params object?[]! args) -> void GitVersion.Logging.LogLevel GitVersion.Logging.LogLevel.Debug = 5 -> GitVersion.Logging.LogLevel GitVersion.Logging.LogLevel.Error = 1 -> GitVersion.Logging.LogLevel @@ -801,6 +848,8 @@ static GitVersion.Configuration.EffectiveBranchConfiguration.operator !=(GitVers static GitVersion.Configuration.EffectiveBranchConfiguration.operator ==(GitVersion.Configuration.EffectiveBranchConfiguration? left, GitVersion.Configuration.EffectiveBranchConfiguration? right) -> bool static GitVersion.Configuration.EffectiveConfiguration.operator !=(GitVersion.Configuration.EffectiveConfiguration? left, GitVersion.Configuration.EffectiveConfiguration? right) -> bool static GitVersion.Configuration.EffectiveConfiguration.operator ==(GitVersion.Configuration.EffectiveConfiguration? left, GitVersion.Configuration.EffectiveConfiguration? right) -> bool +static GitVersion.Configuration.ReferenceNameExtensions.TryGetSemanticVersion(this GitVersion.Git.ReferenceName! source, GitVersion.Configuration.EffectiveConfiguration! configuration, out (GitVersion.SemanticVersion! Value, string? Name) result) -> bool +static GitVersion.Configuration.ReferenceNameExtensions.TryGetSemanticVersion(this GitVersion.Git.ReferenceName! source, GitVersion.Configuration.IGitVersionConfiguration! configuration, out (GitVersion.SemanticVersion! Value, string? Name) result) -> bool static GitVersion.ConfigurationInfo.operator !=(GitVersion.ConfigurationInfo? left, GitVersion.ConfigurationInfo? right) -> bool static GitVersion.ConfigurationInfo.operator ==(GitVersion.ConfigurationInfo? left, GitVersion.ConfigurationInfo? right) -> bool static GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.GetAssemblyFileVersion(this GitVersion.SemanticVersion! sv, GitVersion.Configuration.AssemblyFileVersioningScheme scheme) -> string? @@ -811,6 +860,7 @@ static GitVersion.Extensions.CommonExtensions.NotNullOrWhitespace(this string? v static GitVersion.Extensions.EnumerableExtensions.AddRange(this System.Collections.Generic.ICollection! source, System.Collections.Generic.IEnumerable! items) -> void static GitVersion.Extensions.EnumerableExtensions.OnlyOrDefault(this System.Collections.Generic.IEnumerable! source) -> T? static GitVersion.Extensions.EnumerableExtensions.SingleOfType(this System.Collections.IEnumerable! source) -> T +static GitVersion.Extensions.FileSystemExtensions.FindGitDir(this System.IO.Abstractions.IFileSystem! fileSystem, string? path) -> (string! GitDirectory, string! WorkingTreeDirectory)? static GitVersion.Extensions.FileSystemExtensions.GetLastDirectoryWrite(this System.IO.Abstractions.IFileSystem! fileSystem, string! path) -> long static GitVersion.Extensions.GitExtensions.CreateGitLogArgs(int? maxCommits) -> string! static GitVersion.Extensions.GitExtensions.DumpGraphLog(System.Action? writer = null, int? maxCommits = null) -> void @@ -843,19 +893,29 @@ static GitVersion.Helpers.Disposable.Create(T value, System.Action! disposer) static GitVersion.Helpers.ServiceMessageEscapeHelper.EscapeValue(string? value) -> string? static GitVersion.Logging.LogExtensions.Debug(this GitVersion.Logging.ILog! log, GitVersion.Logging.LogAction! logAction) -> void static GitVersion.Logging.LogExtensions.Debug(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +static GitVersion.Logging.LogExtensions.Debug(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +static GitVersion.Logging.LogExtensions.Debug(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void static GitVersion.Logging.LogExtensions.DiagnosticVerbosity(this GitVersion.Logging.ILog! log) -> System.IDisposable! static GitVersion.Logging.LogExtensions.Error(this GitVersion.Logging.ILog! log, GitVersion.Logging.LogAction! logAction) -> void static GitVersion.Logging.LogExtensions.Error(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +static GitVersion.Logging.LogExtensions.Error(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +static GitVersion.Logging.LogExtensions.Error(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void static GitVersion.Logging.LogExtensions.Info(this GitVersion.Logging.ILog! log, GitVersion.Logging.LogAction! logAction) -> void static GitVersion.Logging.LogExtensions.Info(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +static GitVersion.Logging.LogExtensions.Info(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +static GitVersion.Logging.LogExtensions.Info(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void static GitVersion.Logging.LogExtensions.MinimalVerbosity(this GitVersion.Logging.ILog! log) -> System.IDisposable! static GitVersion.Logging.LogExtensions.NormalVerbosity(this GitVersion.Logging.ILog! log) -> System.IDisposable! static GitVersion.Logging.LogExtensions.QuietVerbosity(this GitVersion.Logging.ILog! log) -> System.IDisposable! static GitVersion.Logging.LogExtensions.Verbose(this GitVersion.Logging.ILog! log, GitVersion.Logging.LogAction! logAction) -> void static GitVersion.Logging.LogExtensions.Verbose(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +static GitVersion.Logging.LogExtensions.Verbose(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +static GitVersion.Logging.LogExtensions.Verbose(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void static GitVersion.Logging.LogExtensions.VerboseVerbosity(this GitVersion.Logging.ILog! log) -> System.IDisposable! static GitVersion.Logging.LogExtensions.Warning(this GitVersion.Logging.ILog! log, GitVersion.Logging.LogAction! logAction) -> void static GitVersion.Logging.LogExtensions.Warning(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void +static GitVersion.Logging.LogExtensions.Warning(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void +static GitVersion.Logging.LogExtensions.Warning(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void static GitVersion.MergeMessage.TryParse(GitVersion.Git.ICommit! mergeCommit, GitVersion.Configuration.IGitVersionConfiguration! configuration, out GitVersion.MergeMessage? mergeMessage) -> bool static GitVersion.OutputVariables.GitVersionVariables.operator !=(GitVersion.OutputVariables.GitVersionVariables? left, GitVersion.OutputVariables.GitVersionVariables? right) -> bool static GitVersion.OutputVariables.GitVersionVariables.operator ==(GitVersion.OutputVariables.GitVersionVariables? left, GitVersion.OutputVariables.GitVersionVariables? right) -> bool diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index 3eb245a638..7dc5c58110 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -1,61 +1 @@ #nullable enable -GitVersion.Configuration.EffectiveConfiguration.TagPrefixPattern.get -> string? -GitVersion.Configuration.ReferenceNameExtensions.extension(GitVersion.Git.ReferenceName!) -GitVersion.Configuration.ReferenceNameExtensions.extension(GitVersion.Git.ReferenceName!).TryGetSemanticVersion(GitVersion.Configuration.EffectiveConfiguration! configuration, out (GitVersion.SemanticVersion! Value, string? Name) result) -> bool -GitVersion.Configuration.ReferenceNameExtensions.extension(GitVersion.Git.ReferenceName!).TryGetSemanticVersion(GitVersion.Configuration.IGitVersionConfiguration! configuration, out (GitVersion.SemanticVersion! Value, string? Name) result) -> bool -GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.extension(GitVersion.SemanticVersion!) -GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.extension(GitVersion.SemanticVersion!).GetAssemblyFileVersion(GitVersion.Configuration.AssemblyFileVersioningScheme scheme) -> string? -GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.extension(GitVersion.SemanticVersion!).GetAssemblyVersion(GitVersion.Configuration.AssemblyVersioningScheme scheme) -> string? -GitVersion.Extensions.FileSystemExtensions.extension(System.IO.Abstractions.IFileSystem!) -GitVersion.Extensions.FileSystemExtensions.extension(System.IO.Abstractions.IFileSystem!).FindGitDir(string? path) -> (string! GitDirectory, string! WorkingTreeDirectory)? -GitVersion.Extensions.FileSystemExtensions.extension(System.IO.Abstractions.IFileSystem!).GetLastDirectoryWrite(string! path) -> long -GitVersion.Extensions.IncrementStrategyExtensions.extension(GitVersion.IncrementStrategy) -GitVersion.Extensions.IncrementStrategyExtensions.extension(GitVersion.IncrementStrategy).ToVersionField() -> GitVersion.VersionField -GitVersion.Extensions.ReadEmbeddedResourceExtensions.extension(string!) -GitVersion.Extensions.ReadEmbeddedResourceExtensions.extension(string!).ReadAsStringFromEmbeddedResource(System.Reflection.Assembly! assembly) -> string! -GitVersion.Extensions.ReadEmbeddedResourceExtensions.extension(string!).ReadAsStringFromEmbeddedResource() -> string! -GitVersion.Extensions.ServiceCollectionExtensions.extension(Microsoft.Extensions.DependencyInjection.IServiceCollection!) -GitVersion.Extensions.ServiceCollectionExtensions.extension(Microsoft.Extensions.DependencyInjection.IServiceCollection!).AddModule(GitVersion.IGitVersionModule! gitVersionModule) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! -GitVersion.Extensions.ServiceCollectionExtensions.extension(System.IServiceProvider!) -GitVersion.Extensions.ServiceCollectionExtensions.extension(System.IServiceProvider!).GetServiceForType() -> TService -GitVersion.Git.ICommit.IsMergeCommit.get -> bool -GitVersion.Logging.ILog.Write(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogLevel level, string! format, params object?[]! args) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!) -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Debug(GitVersion.Logging.LogAction! logAction) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Debug(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Debug(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Debug(string! format, params object?[]! args) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).DiagnosticVerbosity() -> System.IDisposable! -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Error(GitVersion.Logging.LogAction! logAction) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Error(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Error(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Error(string! format, params object?[]! args) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Info(GitVersion.Logging.LogAction! logAction) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Info(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Info(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Info(string! format, params object?[]! args) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).MinimalVerbosity() -> System.IDisposable! -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).NormalVerbosity() -> System.IDisposable! -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).QuietVerbosity() -> System.IDisposable! -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Verbose(GitVersion.Logging.LogAction! logAction) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Verbose(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Verbose(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Verbose(string! format, params object?[]! args) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).VerboseVerbosity() -> System.IDisposable! -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Warning(GitVersion.Logging.LogAction! logAction) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Warning(GitVersion.Logging.Verbosity verbosity, GitVersion.Logging.LogAction! logAction) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Warning(GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void -GitVersion.Logging.LogExtensions.extension(GitVersion.Logging.ILog!).Warning(string! format, params object?[]! args) -> void -static GitVersion.Configuration.ReferenceNameExtensions.TryGetSemanticVersion(this GitVersion.Git.ReferenceName! source, GitVersion.Configuration.EffectiveConfiguration! configuration, out (GitVersion.SemanticVersion! Value, string? Name) result) -> bool -static GitVersion.Configuration.ReferenceNameExtensions.TryGetSemanticVersion(this GitVersion.Git.ReferenceName! source, GitVersion.Configuration.IGitVersionConfiguration! configuration, out (GitVersion.SemanticVersion! Value, string? Name) result) -> bool -static GitVersion.Extensions.FileSystemExtensions.FindGitDir(this System.IO.Abstractions.IFileSystem! fileSystem, string? path) -> (string! GitDirectory, string! WorkingTreeDirectory)? -static GitVersion.Logging.LogExtensions.Debug(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void -static GitVersion.Logging.LogExtensions.Debug(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void -static GitVersion.Logging.LogExtensions.Error(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void -static GitVersion.Logging.LogExtensions.Error(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void -static GitVersion.Logging.LogExtensions.Info(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void -static GitVersion.Logging.LogExtensions.Info(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void -static GitVersion.Logging.LogExtensions.Verbose(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void -static GitVersion.Logging.LogExtensions.Verbose(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void -static GitVersion.Logging.LogExtensions.Warning(this GitVersion.Logging.ILog! log, GitVersion.Logging.Verbosity verbosity, string! format, params object?[]! args) -> void -static GitVersion.Logging.LogExtensions.Warning(this GitVersion.Logging.ILog! log, string! format, params object?[]! args) -> void diff --git a/src/GitVersion.LibGit2Sharp/PublicAPI.Shipped.txt b/src/GitVersion.LibGit2Sharp/PublicAPI.Shipped.txt index 8a22a02e1b..7394ddfbb0 100644 --- a/src/GitVersion.LibGit2Sharp/PublicAPI.Shipped.txt +++ b/src/GitVersion.LibGit2Sharp/PublicAPI.Shipped.txt @@ -9,4 +9,6 @@ GitVersion.GitVersionLibGit2SharpModule GitVersion.GitVersionLibGit2SharpModule.GitVersionLibGit2SharpModule() -> void GitVersion.GitVersionLibGit2SharpModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void GitVersion.LibGit2SharpExtensions +GitVersion.LibGit2SharpExtensions.extension(LibGit2Sharp.IRepository!) +GitVersion.LibGit2SharpExtensions.extension(LibGit2Sharp.IRepository!).ToGitRepository() -> GitVersion.Git.IGitRepository! static GitVersion.LibGit2SharpExtensions.ToGitRepository(this LibGit2Sharp.IRepository! repository) -> GitVersion.Git.IGitRepository! diff --git a/src/GitVersion.LibGit2Sharp/PublicAPI.Unshipped.txt b/src/GitVersion.LibGit2Sharp/PublicAPI.Unshipped.txt index 35ac90728d..7dc5c58110 100644 --- a/src/GitVersion.LibGit2Sharp/PublicAPI.Unshipped.txt +++ b/src/GitVersion.LibGit2Sharp/PublicAPI.Unshipped.txt @@ -1,3 +1 @@ #nullable enable -GitVersion.LibGit2SharpExtensions.extension(LibGit2Sharp.IRepository!) -GitVersion.LibGit2SharpExtensions.extension(LibGit2Sharp.IRepository!).ToGitRepository() -> GitVersion.Git.IGitRepository! From 9ac28a2539e2f530b36814eeb3307cc02c26e7b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 03:55:24 +0000 Subject: [PATCH 058/358] (docs deps): Bump mdast-util-to-hast from 13.0.2 to 13.2.1 Bumps [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast) from 13.0.2 to 13.2.1. - [Release notes](https://github.com/syntax-tree/mdast-util-to-hast/releases) - [Commits](https://github.com/syntax-tree/mdast-util-to-hast/compare/13.0.2...13.2.1) --- updated-dependencies: - dependency-name: mdast-util-to-hast dependency-version: 13.2.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6106 ++------------------------------------------- 1 file changed, 221 insertions(+), 5885 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d0d29f92e..90869e57e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1328,19 +1328,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/dead-or-alive/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/dead-or-alive/node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -1356,20 +1343,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/dead-or-alive/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -2558,53 +2531,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-from-html/node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true - }, - "node_modules/hast-util-from-html/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-html/node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-html/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/hast-util-from-parse5": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", @@ -2631,47 +2557,6 @@ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "dev": true }, - "node_modules/hast-util-from-parse5/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/hast-util-has-property": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz", @@ -3635,19 +3520,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-from-markdown/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-frontmatter": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", @@ -3777,33 +3649,6 @@ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true }, - "node_modules/mdast-util-mdx-jsx/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-mdxjs-esm": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", @@ -3861,9 +3706,9 @@ "dev": true }, "node_modules/mdast-util-to-hast": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz", - "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", "dev": true, "dependencies": { "@types/hast": "^3.0.0", @@ -3873,7 +3718,8 @@ "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0" + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", @@ -4061,48 +3907,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-nlcst/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-nlcst/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-nlcst/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/micromark": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", @@ -5095,48 +4899,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/parse-latin/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/parse-latin/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/parse-latin/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -5519,48 +5281,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-frontmatter/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-frontmatter/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-frontmatter/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-heading-gap": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/remark-heading-gap/-/remark-heading-gap-6.0.0.tgz", @@ -5609,58 +5329,16 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-heading-gap/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/remark-lint": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-10.0.1.tgz", + "integrity": "sha512-1+PYGFziOg4pH7DDf1uMd4AR3YuO2EMnds/SdIWMPGT7CAfDRSnAmpxPsJD0Ds3IKpn97h3d5KPGf1WFOg6hXQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-heading-gap/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-heading-gap/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-10.0.1.tgz", - "integrity": "sha512-1+PYGFziOg4pH7DDf1uMd4AR3YuO2EMnds/SdIWMPGT7CAfDRSnAmpxPsJD0Ds3IKpn97h3d5KPGf1WFOg6hXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "remark-message-control": "^8.0.0", - "unified": "^11.0.0" + "@types/mdast": "^4.0.0", + "remark-message-control": "^8.0.0", + "unified": "^11.0.0" }, "funding": { "type": "opencollective", @@ -5749,48 +5427,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-blockquote-indentation/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-blockquote-indentation/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-checkbox-character-style": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-5.0.1.tgz", @@ -5873,48 +5509,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-checkbox-character-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-character-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-checkbox-content-indent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-5.0.1.tgz", @@ -5997,48 +5591,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-checkbox-content-indent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-code": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/remark-lint-code/-/remark-lint-code-2.0.0.tgz", @@ -6131,48 +5683,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-code-block-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-code-block-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-code/node_modules/unified-lint-rule": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz", @@ -6277,48 +5787,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-definition-case/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-case/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-case/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-definition-spacing": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-4.0.1.tgz", @@ -6388,48 +5856,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-definition-spacing/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-definition-spacing/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-emphasis-marker": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-4.0.0.tgz", @@ -6510,54 +5936,12 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-emphasis-marker/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/remark-lint-fenced-code-flag": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-4.2.0.tgz", + "integrity": "sha512-QWGTrnYbcopOFZR98djDREmKApLonJ7hmXE7pEcOGee9JY/EUIVS7Lq54Hy9CtU3cVIvQQmiMTxCwUhfddDJFA==", "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-emphasis-marker/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-emphasis-marker/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-4.2.0.tgz", - "integrity": "sha512-QWGTrnYbcopOFZR98djDREmKApLonJ7hmXE7pEcOGee9JY/EUIVS7Lq54Hy9CtU3cVIvQQmiMTxCwUhfddDJFA==", - "dev": true, - "license": "MIT", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-phrasing": "^4.0.0", @@ -6634,48 +6018,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-fenced-code-flag/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-flag/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-fenced-code-marker": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-4.0.1.tgz", @@ -6758,48 +6100,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-fenced-code-marker/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-fenced-code-marker/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-file-extension": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-3.0.1.tgz", @@ -6866,48 +6166,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-file-extension/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-file-extension/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-file-extension/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-final-definition": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-4.0.2.tgz", @@ -6992,48 +6250,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-final-definition/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-definition/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-final-newline": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-3.0.1.tgz", @@ -7101,48 +6317,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-final-newline/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-newline/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-final-newline/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-hard-break-spaces": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-4.1.1.tgz", @@ -7223,19 +6397,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-hard-break-spaces/node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -7251,35 +6412,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-hard-break-spaces/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-hard-break-spaces/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-heading-increment": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-heading-increment/-/remark-lint-heading-increment-4.0.1.tgz", @@ -7349,54 +6481,12 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-heading-increment/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/remark-lint-heading-style": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-4.0.1.tgz", + "integrity": "sha512-+rUpJ/N2CGC5xPgZ18XgsCsUBtadgEhdTi0BJPrsFmHPzL22BUHajeg9im8Y7zphUcbi1qFiKuxZd2nzDgZSXQ==", "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-increment/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-increment/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-4.0.1.tgz", - "integrity": "sha512-+rUpJ/N2CGC5xPgZ18XgsCsUBtadgEhdTi0BJPrsFmHPzL22BUHajeg9im8Y7zphUcbi1qFiKuxZd2nzDgZSXQ==", - "dev": true, - "license": "MIT", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-heading-style": "^3.0.0", @@ -7487,48 +6577,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-heading-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-heading-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-heading-whitespace": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/remark-lint-heading-whitespace/-/remark-lint-heading-whitespace-1.0.0.tgz", @@ -7668,48 +6716,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-link-title-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-link-title-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-link-title-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-list-item-bullet-indent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-5.0.1.tgz", @@ -7790,48 +6796,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-bullet-indent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-list-item-content-indent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-4.0.1.tgz", @@ -7915,48 +6879,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-list-item-content-indent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-content-indent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-content-indent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-list-item-indent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-4.0.1.tgz", @@ -8039,48 +6961,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-list-item-indent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-indent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-list-item-spacing": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-5.0.0.tgz", @@ -8163,48 +7043,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-list-item-spacing/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-spacing/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-list-item-spacing/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-maximum-heading-length": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-4.1.1.tgz", @@ -8300,52 +7138,10 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-maximum-heading-length/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-heading-length/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-heading-length/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-4.0.1.tgz", - "integrity": "sha512-hQlh8UrRfhkO4FU7z7t1Bu5ethj1y2iBncO5AOWF38RAmlHaZdB2lQxNA8IvUZITGJYpT1aThdFTEf+58lv08Q==", + "node_modules/remark-lint-maximum-line-length": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-4.0.1.tgz", + "integrity": "sha512-hQlh8UrRfhkO4FU7z7t1Bu5ethj1y2iBncO5AOWF38RAmlHaZdB2lQxNA8IvUZITGJYpT1aThdFTEf+58lv08Q==", "dev": true, "dependencies": { "@types/mdast": "^4.0.0", @@ -8423,19 +7219,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-maximum-line-length/node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -8451,35 +7234,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-maximum-line-length/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-maximum-line-length/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-blockquote-without-marker": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-6.0.1.tgz", @@ -8565,48 +7319,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-blockquote-without-marker/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-consecutive-blank-lines": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-5.0.1.tgz", @@ -8691,48 +7403,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-consecutive-blank-lines/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-dead-urls": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-dead-urls/-/remark-lint-no-dead-urls-2.0.1.tgz", @@ -8805,19 +7475,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-dead-urls/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-dead-urls/node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -8833,34 +7490,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-dead-urls/node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-dead-urls/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-duplicate-definitions": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-4.0.1.tgz", @@ -8930,48 +7559,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-definitions/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-duplicate-headings": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-4.0.1.tgz", @@ -9055,48 +7642,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-duplicate-headings/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-headings/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-duplicate-headings/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-emphasis-as-heading": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-4.0.1.tgz", @@ -9164,52 +7709,10 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-emphasis-as-heading/node_modules/unist-util-stringify-position": { + "node_modules/remark-lint-no-empty-sections": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-emphasis-as-heading/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-emphasis-as-heading/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-empty-sections": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-empty-sections/-/remark-lint-no-empty-sections-4.0.0.tgz", - "integrity": "sha512-Tx1nCu7Dq3dsJ500402sSvM0uVK/6khSuEjx8K8u9aHN+Y4vjL6h88xVzdzCmZq2J2yqyFnvMjG1y7lQv+DRvg==", + "resolved": "https://registry.npmjs.org/remark-lint-no-empty-sections/-/remark-lint-no-empty-sections-4.0.0.tgz", + "integrity": "sha512-Tx1nCu7Dq3dsJ500402sSvM0uVK/6khSuEjx8K8u9aHN+Y4vjL6h88xVzdzCmZq2J2yqyFnvMjG1y7lQv+DRvg==", "dev": true, "dependencies": { "mdast-util-to-string": "^1.0.2", @@ -9330,48 +7833,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-empty-url/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-empty-url/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-empty-url/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-file-name-articles": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-3.0.1.tgz", @@ -9437,48 +7898,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-articles/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-articles/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-articles/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-file-name-consecutive-dashes": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-3.0.1.tgz", @@ -9544,48 +7963,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-consecutive-dashes/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-file-name-irregular-characters": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-3.0.1.tgz", @@ -9651,48 +8028,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-irregular-characters/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-file-name-mixed-case": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-3.0.1.tgz", @@ -9758,48 +8093,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-mixed-case/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-mixed-case/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-mixed-case/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-file-name-outer-dashes": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-3.0.1.tgz", @@ -9865,48 +8158,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-file-name-outer-dashes/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-heading-content-indent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-5.0.1.tgz", @@ -9989,61 +8240,19 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/remark-lint-no-heading-indent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-5.0.1.tgz", + "integrity": "sha512-R/KkR9Qfh0AM3asadSnQQXMHu6BNZxPbxLI9h9JBPIZM+EtzycDlhaAHbOlQUdaHA5UEANhYENZBLrueH50Cdg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-content-indent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-indent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-5.0.1.tgz", - "integrity": "sha512-R/KkR9Qfh0AM3asadSnQQXMHu6BNZxPbxLI9h9JBPIZM+EtzycDlhaAHbOlQUdaHA5UEANhYENZBLrueH50Cdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-phrasing": "^4.0.0", - "pluralize": "^8.0.0", - "unified-lint-rule": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit-parents": "^6.0.0" + "@types/mdast": "^4.0.0", + "mdast-util-phrasing": "^4.0.0", + "pluralize": "^8.0.0", + "unified-lint-rule": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", @@ -10113,48 +8322,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-indent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-indent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-indent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-heading-like-paragraph": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-heading-like-paragraph/-/remark-lint-no-heading-like-paragraph-4.0.1.tgz", @@ -10237,48 +8404,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-like-paragraph/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-like-paragraph/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-like-paragraph/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-heading-punctuation": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-4.0.0.tgz", @@ -10359,48 +8484,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-heading-punctuation/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-punctuation/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-heading-punctuation/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-literal-urls": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-4.0.1.tgz", @@ -10496,48 +8579,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-literal-urls/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-literal-urls/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-literal-urls/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-multiple-toplevel-headings": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-4.0.1.tgz", @@ -10607,48 +8648,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-multiple-toplevel-headings/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-reference-like-url": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-reference-like-url/-/remark-lint-no-reference-like-url-4.0.1.tgz", @@ -10731,48 +8730,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-reference-like-url/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-reference-like-url/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-reference-like-url/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-repeat-punctuation": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/remark-lint-no-repeat-punctuation/-/remark-lint-no-repeat-punctuation-0.1.4.tgz", @@ -10865,48 +8822,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shell-dollars/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shell-dollars/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shell-dollars/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-shortcut-reference-image": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-4.0.1.tgz", @@ -10973,48 +8888,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shortcut-reference-image/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-shortcut-reference-link": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-4.0.0.tgz", @@ -11080,48 +8953,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-shortcut-reference-link/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-table-indentation": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-5.0.1.tgz", @@ -11206,48 +9037,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-table-indentation/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-table-indentation/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-table-indentation/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-tabs": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-4.0.1.tgz", @@ -11314,48 +9103,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-tabs/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-tabs/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-tabs/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-undefined-references": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-5.0.0.tgz", @@ -11439,48 +9186,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-undefined-references/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-undefined-references/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-undefined-references/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-no-unused-definitions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-4.0.2.tgz", @@ -11548,48 +9253,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-no-unused-definitions/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-unused-definitions/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-no-unused-definitions/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-ordered-list-marker-style": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-4.0.1.tgz", @@ -11673,63 +9336,21 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/remark-lint-ordered-list-marker-value": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-4.0.1.tgz", + "integrity": "sha512-HQb1MrArvApREC1/I6bkiFlZVDjngsuII29n8E8StnAaHOMN3hVYy6wJ9Uk+O3+X9O8v7fDsZPqFUHSfJhERXQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-ordered-list-marker-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-ordered-list-marker-value": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-4.0.1.tgz", - "integrity": "sha512-HQb1MrArvApREC1/I6bkiFlZVDjngsuII29n8E8StnAaHOMN3hVYy6wJ9Uk+O3+X9O8v7fDsZPqFUHSfJhERXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-phrasing": "^4.0.0", - "micromark-util-character": "^2.0.0", - "unified-lint-rule": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit-parents": "^6.0.0", - "vfile-message": "^4.0.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-phrasing": "^4.0.0", + "micromark-util-character": "^2.0.0", + "unified-lint-rule": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit-parents": "^6.0.0", + "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", @@ -11799,48 +9420,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-ordered-list-marker-value/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-ordered-list-marker-value/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-ordered-list-marker-value/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-rule-style": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-4.0.1.tgz", @@ -11923,48 +9502,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-rule-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-rule-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-rule-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-strong-marker": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-4.0.1.tgz", @@ -12046,48 +9583,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-strong-marker/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-strong-marker/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-strong-marker/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-table-cell-padding": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-5.1.1.tgz", @@ -12173,48 +9668,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-cell-padding/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-cell-padding/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-cell-padding/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-table-pipe-alignment": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-4.1.1.tgz", @@ -12299,48 +9752,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-pipe-alignment/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-pipe-alignment/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-pipe-alignment/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-table-pipes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-5.0.1.tgz", @@ -12423,48 +9834,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-table-pipes/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-pipes/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-table-pipes/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-unordered-list-marker-style": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-4.0.1.tgz", @@ -12547,48 +9916,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint-unordered-list-marker-style/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-lint-write-good": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/remark-lint-write-good/-/remark-lint-write-good-1.2.0.tgz", @@ -12672,48 +9999,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-lint/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-lint/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-message-control": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-8.0.0.tgz", @@ -12745,48 +10030,6 @@ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true }, - "node_modules/remark-message-control/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-message-control/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-message-control/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-parse": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", @@ -12837,48 +10080,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-parse/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-preset-lint-consistent": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/remark-preset-lint-consistent/-/remark-preset-lint-consistent-6.0.1.tgz", @@ -12932,48 +10133,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-consistent/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-consistent/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-consistent/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-preset-lint-markdown-style-guide": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-6.0.1.tgz", @@ -13056,48 +10215,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-markdown-style-guide/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-markdown-style-guide/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-markdown-style-guide/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-preset-lint-recommended": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-7.0.1.tgz", @@ -13151,48 +10268,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-preset-lint-recommended/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-recommended/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-preset-lint-recommended/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-retext": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-6.0.1.tgz", @@ -13246,57 +10321,15 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-retext/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", "dev": true, "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-retext/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-retext/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", - "dev": true, - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" }, "funding": { "type": "opencollective", @@ -13337,48 +10370,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-stringify/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-textr": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/remark-textr/-/remark-textr-6.1.0.tgz", @@ -13476,19 +10467,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-validate-links/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-validate-links/node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -13504,35 +10482,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-validate-links/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-validate-links/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark/node_modules/@types/mdast": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz", @@ -13567,48 +10516,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/resolve": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", @@ -14272,48 +11179,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/unified-engine/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified-engine/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified-engine/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unified-message-control": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-5.0.0.tgz", @@ -14340,19 +11205,6 @@ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true }, - "node_modules/unified-message-control/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unified-message-control/node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -14368,35 +11220,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unified-message-control/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified-message-control/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unist-util-inspect": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-8.0.0.tgz", @@ -14501,6 +11324,25 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + }, "node_modules/unist-util-to-list-of-char": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/unist-util-to-list-of-char/-/unist-util-to-list-of-char-0.1.3.tgz", @@ -14609,6 +11451,20 @@ "dev": true, "peer": true }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/vfile-location": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz", @@ -14629,38 +11485,10 @@ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true }, - "node_modules/vfile-location/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", "dev": true, "dependencies": { "@types/unist": "^3.0.0", @@ -14671,6 +11499,12 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vfile-message/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + }, "node_modules/vfile-reporter": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.0.tgz", @@ -14691,169 +11525,25 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vfile-reporter/node_modules/@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, "node_modules/vfile-reporter/node_modules/supports-color": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", - "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/vfile-reporter/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-reporter/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-reporter/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-sort": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-4.0.0.tgz", - "integrity": "sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==", - "dev": true, - "dependencies": { - "vfile": "^6.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-sort/node_modules/@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, - "node_modules/vfile-sort/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-sort/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-sort/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-statistics": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-3.0.0.tgz", - "integrity": "sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==", - "dev": true, - "dependencies": { - "vfile": "^6.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-statistics/node_modules/@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, - "node_modules/vfile-statistics/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", "dev": true, - "dependencies": { - "@types/unist": "^3.0.0" + "engines": { + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/vfile-statistics/node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "node_modules/vfile-sort": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-4.0.0.tgz", + "integrity": "sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==", "dev": true, "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", + "vfile": "^6.0.0", "vfile-message": "^4.0.0" }, "funding": { @@ -14861,20 +11551,26 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vfile-statistics/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/vfile-statistics": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-3.0.0.tgz", + "integrity": "sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==", "dev": true, "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/vfile/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + }, "node_modules/walk-up-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", @@ -16086,15 +12782,6 @@ "integrity": "sha512-/qMCkZbrAF7jZP/voqlkfNrBtEn0TMdhCK7OEBh/zb39t/c3wCnTjwU1ZvrMfQ3OxB8sBQXIpWRMM6FiQJVG3g==", "dev": true }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, "unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -16105,16 +12792,6 @@ "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -17010,43 +13687,6 @@ "parse5": "^7.0.0", "vfile": "^6.0.0", "vfile-message": "^4.0.0" - }, - "dependencies": { - "@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } - } } }, "hast-util-from-html-isomorphic": { @@ -17082,35 +13722,6 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -17826,15 +14437,6 @@ "requires": { "@types/mdast": "^4.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } } } }, @@ -17948,25 +14550,6 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -18023,9 +14606,9 @@ } }, "mdast-util-to-hast": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz", - "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", "dev": true, "requires": { "@types/hast": "^3.0.0", @@ -18035,7 +14618,8 @@ "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0" + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "dependencies": { "@types/mdast": { @@ -18192,36 +14776,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -18845,36 +15399,6 @@ "requires": { "@types/nlcst": "^2.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19125,36 +15649,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19219,36 +15713,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19291,36 +15755,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19364,36 +15798,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19461,36 +15865,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19558,36 +15932,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19655,36 +15999,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19797,36 +16111,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19883,36 +16167,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -19971,36 +16225,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20067,36 +16291,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20164,36 +16358,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20261,36 +16425,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20346,36 +16480,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20445,36 +16549,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20531,36 +16605,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20627,15 +16671,6 @@ "@types/unist": "^3.0.0" } }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, "unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -20646,27 +16681,6 @@ "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20725,36 +16739,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20832,36 +16816,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -20980,36 +16934,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21075,36 +16999,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21168,40 +17062,10 @@ "unist-util-position": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "dev": true, "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "@types/unist": "^3.0.0" } } } @@ -21270,36 +17134,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21368,36 +17202,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21474,36 +17278,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21572,15 +17346,6 @@ "@types/unist": "^3.0.0" } }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, "unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -21591,27 +17356,6 @@ "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21682,36 +17426,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21781,36 +17495,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21874,15 +17558,6 @@ "vfile": "^6.0.0" } }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, "unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -21893,26 +17568,6 @@ "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } - }, - "vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -21971,36 +17626,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22069,36 +17694,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22155,36 +17750,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22292,36 +17857,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22376,36 +17911,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22460,36 +17965,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22519,60 +17994,30 @@ "dev": true }, "unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - } - }, - "unified-lint-rule": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", - "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "trough": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dev": true, "requires": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" } }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "unified-lint-rule": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.0.tgz", + "integrity": "sha512-Sz96ILLsTy3djsG3H44zFb2b77MFf9CQVYnV3PWkxgRX8/n31fFrr+JnzUaJ6cbOHTtZnL1A71+YodsTjzwAew==", "dev": true, "requires": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "trough": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" } } } @@ -22628,36 +18073,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22712,36 +18127,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22809,36 +18194,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -22906,36 +18261,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23003,36 +18328,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23099,36 +18394,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23205,36 +18470,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23293,36 +18528,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23390,36 +18595,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23499,36 +18674,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23584,36 +18729,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23669,36 +18784,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23768,36 +18853,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -23850,38 +18905,8 @@ "requires": { "@types/unist": "^3.0.0", "trough": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "unified": "^11.0.0", + "vfile": "^6.0.0" } } } @@ -23952,36 +18977,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24038,36 +19033,6 @@ "unified": "^11.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24136,36 +19101,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24235,36 +19170,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24332,36 +19237,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24428,36 +19303,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24528,36 +19373,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24627,36 +19442,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24724,36 +19509,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24821,36 +19576,6 @@ "requires": { "@types/unist": "^3.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -24927,36 +19652,6 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25001,36 +19696,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25077,36 +19742,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25161,56 +19796,26 @@ "remark-lint-unordered-list-marker-style": "^4.0.0", "unified": "^11.0.0" }, - "dependencies": { - "@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", - "dev": true - }, - "unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } + "dependencies": { + "@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", + "dev": true }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "unified": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dev": true, "requires": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" } } } @@ -25258,36 +19863,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25334,36 +19909,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25407,36 +19952,6 @@ "trough": "^2.0.0", "vfile": "^6.0.0" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -25522,15 +20037,6 @@ "@types/mdast": "^4.0.0" } }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, "unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -25541,27 +20047,6 @@ "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -26044,36 +20529,6 @@ "requires": { "brace-expansion": "^2.0.1" } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -26099,15 +20554,6 @@ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, "unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -26118,27 +20564,6 @@ "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -26232,6 +20657,23 @@ } } }, + "unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0" + }, + "dependencies": { + "@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + } + } + }, "unist-util-to-list-of-char": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/unist-util-to-list-of-char/-/unist-util-to-list-of-char-0.1.3.tgz", @@ -26332,6 +20774,24 @@ "dev": true, "peer": true }, + "vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "dependencies": { + "@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + } + } + }, "vfile-location": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz", @@ -26347,36 +20807,24 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } + } + } + }, + "vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "dev": true, + "requires": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "dependencies": { + "@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true } } }, @@ -26396,47 +20844,11 @@ "vfile-statistics": "^3.0.0" }, "dependencies": { - "@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, "supports-color": { "version": "9.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } } } }, @@ -26448,44 +20860,6 @@ "requires": { "vfile": "^6.0.0", "vfile-message": "^4.0.0" - }, - "dependencies": { - "@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } - } } }, "vfile-statistics": { @@ -26496,44 +20870,6 @@ "requires": { "vfile": "^6.0.0", "vfile-message": "^4.0.0" - }, - "dependencies": { - "@types/unist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", - "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==", - "dev": true - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0" - } - }, - "vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dev": true, - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } - } } }, "walk-up-path": { From 423e5f1898f111ff6a6bf4d1e1d7571ed749a27c Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 5 Dec 2025 10:38:55 +0100 Subject: [PATCH 059/358] refactor to C# 14 extension methods migrate static extension methods to C# 14 syntax. --- .../Addins/GitVersion/GitVersionAliases.cs | 176 ++++---- build/common/Utilities/CakeHostExtensions.cs | 29 +- build/common/Utilities/ContextExtensions.cs | 287 ++++++------ .../Utilities/DockerContextExtensions.cs | 413 +++++++++--------- build/common/Utilities/Extensions.cs | 144 +++--- 5 files changed, 537 insertions(+), 512 deletions(-) diff --git a/build/common/Addins/GitVersion/GitVersionAliases.cs b/build/common/Addins/GitVersion/GitVersionAliases.cs index 16ccd229d2..e939fb1f2a 100644 --- a/build/common/Addins/GitVersion/GitVersionAliases.cs +++ b/build/common/Addins/GitVersion/GitVersionAliases.cs @@ -13,97 +13,99 @@ namespace Common.Addins.GitVersion; [CakeAliasCategory("GitVersion")] public static class GitVersionAliases { - /// - /// Retrieves the GitVersion output. - /// /// The context. - /// The Git version info. - /// - /// Update the assembly info files for the project. - /// Cake task: - /// - /// - /// { - /// GitVersion(new GitVersionSettings { - /// UpdateAssemblyInfo = true - /// }); - /// }); - /// ]]> - /// - /// Get the Git version info for the project using a dynamic repository. - /// Cake task: - /// - /// - /// { - /// var result = GitVersion(new GitVersionSettings { - /// UserName = "MyUser", - /// Password = "MyPassword, - /// Url = "http://git.myhost.com/myproject.git" - /// Branch = "develop" - /// Commit = EnvironmentVariable("MY_COMMIT") - /// }); - /// // Use result for building NuGet packages, setting build server version, etc... - /// }); - /// ]]> - /// - /// - [CakeMethodAlias] - public static GitVersion GitVersion(this ICakeContext context) + extension(ICakeContext context) { - ArgumentNullException.ThrowIfNull(context); + /// + /// Retrieves the GitVersion output. + /// + /// The Git version info. + /// + /// Update the assembly info files for the project. + /// Cake task: + /// + /// + /// { + /// GitVersion(new GitVersionSettings { + /// UpdateAssemblyInfo = true + /// }); + /// }); + /// ]]> + /// + /// Get the Git version info for the project using a dynamic repository. + /// Cake task: + /// + /// + /// { + /// var result = GitVersion(new GitVersionSettings { + /// UserName = "MyUser", + /// Password = "MyPassword, + /// Url = "http://git.myhost.com/myproject.git" + /// Branch = "develop" + /// Commit = EnvironmentVariable("MY_COMMIT") + /// }); + /// // Use result for building NuGet packages, setting build server version, etc... + /// }); + /// ]]> + /// + /// + [CakeMethodAlias] + public GitVersion GitVersion() + { + ArgumentNullException.ThrowIfNull(context); - return GitVersion(context, new GitVersionSettings()); - } + return GitVersion(context, new GitVersionSettings()); + } - /// - /// Retrieves the GitVersion output. - /// - /// The context. - /// The GitVersion settings. - /// The Git version info. - /// - /// Update the assembly info files for the project. - /// Cake task: - /// - /// - /// { - /// GitVersion(new GitVersionSettings { - /// UpdateAssemblyInfo = true - /// }); - /// }); - /// ]]> - /// - /// Get the Git version info for the project using a dynamic repository. - /// Cake task: - /// - /// - /// { - /// var result = GitVersion(new GitVersionSettings { - /// UserName = "MyUser", - /// Password = "MyPassword, - /// Url = "http://git.myhost.com/myproject.git" - /// Branch = "develop" - /// Commit = EnvironmentVariable("MY_COMMIT") - /// }); - /// // Use result for building NuGet packages, setting build server version, etc... - /// }); - /// ]]> - /// - /// - [CakeMethodAlias] - public static GitVersion GitVersion(this ICakeContext context, GitVersionSettings settings) - { - ArgumentNullException.ThrowIfNull(context); + /// + /// Retrieves the GitVersion output. + /// + /// The GitVersion settings. + /// The Git version info. + /// + /// Update the assembly info files for the project. + /// Cake task: + /// + /// + /// { + /// GitVersion(new GitVersionSettings { + /// UpdateAssemblyInfo = true + /// }); + /// }); + /// ]]> + /// + /// Get the Git version info for the project using a dynamic repository. + /// Cake task: + /// + /// + /// { + /// var result = GitVersion(new GitVersionSettings { + /// UserName = "MyUser", + /// Password = "MyPassword, + /// Url = "http://git.myhost.com/myproject.git" + /// Branch = "develop" + /// Commit = EnvironmentVariable("MY_COMMIT") + /// }); + /// // Use result for building NuGet packages, setting build server version, etc... + /// }); + /// ]]> + /// + /// + [CakeMethodAlias] + public GitVersion GitVersion(GitVersionSettings settings) + { + ArgumentNullException.ThrowIfNull(context); - var gitVersionRunner = new GitVersionRunner(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools, context.Log); - return gitVersionRunner.Run(settings); + var gitVersionRunner = new GitVersionRunner(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools, context.Log); + return gitVersionRunner.Run(settings); + } } } diff --git a/build/common/Utilities/CakeHostExtensions.cs b/build/common/Utilities/CakeHostExtensions.cs index 43b964c8b1..92af69e789 100644 --- a/build/common/Utilities/CakeHostExtensions.cs +++ b/build/common/Utilities/CakeHostExtensions.cs @@ -4,21 +4,24 @@ namespace Common.Utilities; public static class ServicesExtensions { - public static CakeHost UseRootDirectory(this CakeHost host) + extension(CakeHost host) { - host = host.ConfigureServices(services => services.UseWorkingDirectory(Extensions.GetRootDirectory())); - return host; - } + public CakeHost UseRootDirectory() + { + host = host.ConfigureServices(services => services.UseWorkingDirectory(Extensions.GetRootDirectory())); + return host; + } - public static CakeHost InstallToolsFromRootManifest(this CakeHost host) - { - host = host.UseModule().InstallToolsFromManifest(Extensions.GetRootDirectory().CombineWithFilePath(".config/dotnet-tools.json").FullPath); - return host; - } + public CakeHost InstallToolsFromRootManifest() + { + host = host.UseModule().InstallToolsFromManifest(Extensions.GetRootDirectory().CombineWithFilePath(".config/dotnet-tools.json").FullPath); + return host; + } - public static CakeHost InstallNugetTool(this CakeHost host, string toolName, string toolVersion) - { - var toolUrl = new Uri($"nuget:?package={toolName}&version={toolVersion}"); - return host.ConfigureServices(services => services.UseTool(toolUrl)); + public CakeHost InstallNugetTool(string toolName, string toolVersion) + { + var toolUrl = new Uri($"nuget:?package={toolName}&version={toolVersion}"); + return host.ConfigureServices(services => services.UseTool(toolUrl)); + } } } diff --git a/build/common/Utilities/ContextExtensions.cs b/build/common/Utilities/ContextExtensions.cs index 049420f969..25b7394097 100644 --- a/build/common/Utilities/ContextExtensions.cs +++ b/build/common/Utilities/ContextExtensions.cs @@ -7,183 +7,188 @@ namespace Common.Utilities; public static class ContextExtensions { - public static IEnumerable ExecuteCommand(this ICakeContext context, FilePath exe, string? args, DirectoryPath? workDir = null) + extension(ICakeContext context) { - var processSettings = new ProcessSettings { Arguments = args, RedirectStandardOutput = true }; - if (workDir is not null) + public IEnumerable ExecuteCommand(FilePath exe, string? args, DirectoryPath? workDir = null) { - processSettings.WorkingDirectory = workDir; + var processSettings = new ProcessSettings { Arguments = args, RedirectStandardOutput = true }; + if (workDir is not null) + { + processSettings.WorkingDirectory = workDir; + } + + context.StartProcess(exe, processSettings, out var redirectedOutput); + return redirectedOutput.ToList(); } - context.StartProcess(exe, processSettings, out var redirectedOutput); - return redirectedOutput.ToList(); - } - - private static IEnumerable ExecGitCmd(this ICakeContext context, string? cmd, DirectoryPath? workDir = null) - { - var gitExe = context.Tools.Resolve(context.IsRunningOnWindows() ? "git.exe" : "git"); - return context.ExecuteCommand(gitExe, cmd, workDir); - } - - public static void GitPushBranch(this ICakeContext context, DirectoryPath repositoryDirectoryPath, string username, string token, string branchName) - { - var pushUrl = $"https://{username}:{token}@github.com/{Constants.RepoOwner}/{Constants.Repository}"; - context.ExecGitCmd($"push {pushUrl} {branchName}", workDir: repositoryDirectoryPath); - } + private IEnumerable ExecGitCmd(string? cmd, DirectoryPath? workDir = null) + { + var gitExe = context.Tools.Resolve(context.IsRunningOnWindows() ? "git.exe" : "git"); + return context.ExecuteCommand(gitExe, cmd, workDir); + } - public static bool IsOriginalRepo(this ICakeContext context) - { - var repositoryName = context.GetRepositoryName(); - return !string.IsNullOrWhiteSpace(repositoryName) && StringComparer.OrdinalIgnoreCase.Equals("gittools/GitVersion", repositoryName); - } + public void GitPushBranch(DirectoryPath repositoryDirectoryPath, string username, string token, string branchName) + { + var pushUrl = $"https://{username}:{token}@github.com/{Constants.RepoOwner}/{Constants.Repository}"; + context.ExecGitCmd($"push {pushUrl} {branchName}", workDir: repositoryDirectoryPath); + } - public static bool IsMainBranch(this ICakeContext context) - { - var repositoryBranch = GetBranchName(context); - return !string.IsNullOrWhiteSpace(repositoryBranch) && StringComparer.OrdinalIgnoreCase.Equals(Constants.DefaultBranch, repositoryBranch); - } + public bool IsOriginalRepo() + { + var repositoryName = context.GetRepositoryName(); + return !string.IsNullOrWhiteSpace(repositoryName) && StringComparer.OrdinalIgnoreCase.Equals("gittools/GitVersion", repositoryName); + } - public static bool IsSupportBranch(this ICakeContext context) - { - var repositoryBranch = GetBranchName(context); - return !string.IsNullOrWhiteSpace(repositoryBranch) && repositoryBranch.StartsWith("support/", StringComparison.OrdinalIgnoreCase); - } + public bool IsMainBranch() + { + var repositoryBranch = GetBranchName(context); + return !string.IsNullOrWhiteSpace(repositoryBranch) && StringComparer.OrdinalIgnoreCase.Equals(Constants.DefaultBranch, repositoryBranch); + } - public static bool IsTagged(this ICakeContext context) - { - var sha = context.ExecGitCmd("rev-parse --verify HEAD").Single(); - var isTagged = context.ExecGitCmd("tag --points-at " + sha).Any(); + public bool IsSupportBranch() + { + var repositoryBranch = GetBranchName(context); + return !string.IsNullOrWhiteSpace(repositoryBranch) && repositoryBranch.StartsWith("support/", StringComparison.OrdinalIgnoreCase); + } - return isTagged; - } + public bool IsTagged() + { + var sha = context.ExecGitCmd("rev-parse --verify HEAD").Single(); + var isTagged = context.ExecGitCmd("tag --points-at " + sha).Any(); - public static void ValidateOutput(this ICakeContext context, string cmd, string? args, string? expected) - { - var output = context.ExecuteCommand(cmd, args); - var outputStr = string.Concat(output); - context.Information(outputStr); + return isTagged; + } - Assert.Equal(expected, outputStr); - } + public void ValidateOutput(string cmd, string? args, string? expected) + { + var output = context.ExecuteCommand(cmd, args); + var outputStr = string.Concat(output); + context.Information(outputStr); - public static bool IsEnabled(this ICakeContext context, string envVar, bool nullOrEmptyAsEnabled = true) - { - var value = context.EnvironmentVariable(envVar); + Assert.Equal(expected, outputStr); + } - return string.IsNullOrWhiteSpace(value) ? nullOrEmptyAsEnabled : bool.Parse(value); - } + public bool IsEnabled(string envVar, bool nullOrEmptyAsEnabled = true) + { + var value = context.EnvironmentVariable(envVar); - public static string GetOS(this ICakeContext context) - { - if (context.IsRunningOnWindows()) return "Windows"; - if (context.IsRunningOnLinux()) return "Linux"; - if (context.IsRunningOnMacOs()) return "macOs"; + return string.IsNullOrWhiteSpace(value) ? nullOrEmptyAsEnabled : bool.Parse(value); + } - return string.Empty; - } + public string GetOS() + { + if (context.IsRunningOnWindows()) return "Windows"; + if (context.IsRunningOnLinux()) return "Linux"; + if (context.IsRunningOnMacOs()) return "macOs"; - public static bool IsRunningOnAmd64(this ICakeContext _) - => RuntimeInformation.ProcessArchitecture == ProcessArchitecture.X64; + return string.Empty; + } - public static bool IsRunningOnArm64(this ICakeContext _) => - RuntimeInformation.ProcessArchitecture == ProcessArchitecture.Arm64; + public bool IsRunningOnAmd64() + => RuntimeInformation.ProcessArchitecture == ProcessArchitecture.X64; - public static string GetBuildAgent(this ICakeContext context) - { - var buildSystem = context.BuildSystem(); - return buildSystem.Provider switch - { - BuildProvider.Local => "Local", - BuildProvider.AppVeyor => "AppVeyor", - BuildProvider.AzurePipelines => "AzurePipelines", - BuildProvider.GitHubActions => "GitHubActions", - _ => string.Empty - }; - } + public bool IsRunningOnArm64() => + RuntimeInformation.ProcessArchitecture == ProcessArchitecture.Arm64; - public static void StartGroup(this ICakeContext context, string title) - { - var buildSystem = context.BuildSystem(); - if (buildSystem.IsRunningOnAzurePipelines) + public string GetBuildAgent() { - context.AzurePipelines().Commands.StartGroup(context, title); + var buildSystem = context.BuildSystem(); + return buildSystem.Provider switch + { + BuildProvider.Local => "Local", + BuildProvider.AppVeyor => "AppVeyor", + BuildProvider.AzurePipelines => "AzurePipelines", + BuildProvider.GitHubActions => "GitHubActions", + _ => string.Empty + }; } - else if (buildSystem.IsRunningOnGitHubActions) - { - context.GitHubActions().Commands.StartGroup(title); - } - } - public static void EndGroup(this ICakeContext context) - { - var buildSystem = context.BuildSystem(); - if (buildSystem.IsRunningOnAzurePipelines) + public void StartGroup(string title) { - context.AzurePipelines().Commands.EndGroup(context); + var buildSystem = context.BuildSystem(); + if (buildSystem.IsRunningOnAzurePipelines) + { + context.AzurePipelines().Commands.StartGroup(context, title); + } + else if (buildSystem.IsRunningOnGitHubActions) + { + context.GitHubActions().Commands.StartGroup(title); + } } - else if (buildSystem.IsRunningOnGitHubActions) + + public void EndGroup() { - context.GitHubActions().Commands.EndGroup(); + var buildSystem = context.BuildSystem(); + if (buildSystem.IsRunningOnAzurePipelines) + { + context.AzurePipelines().Commands.EndGroup(context); + } + else if (buildSystem.IsRunningOnGitHubActions) + { + context.GitHubActions().Commands.EndGroup(); + } } - } - - public static bool ShouldRun(this ICakeContext context, bool criteria, string skipMessage) - { - if (criteria) return true; - - context.Information(skipMessage); - return false; - } - public static string GetBranchName(this ICakeContext context) - { - var buildSystem = context.BuildSystem(); - string repositoryBranch = context.ExecGitCmd("rev-parse --abbrev-ref HEAD").Single(); - if (buildSystem.IsRunningOnAppVeyor) + public bool ShouldRun(bool criteria, string skipMessage) { - repositoryBranch = buildSystem.AppVeyor.Environment.Repository.Branch; + if (criteria) return true; + + context.Information(skipMessage); + return false; } - else if (buildSystem.IsRunningOnAzurePipelines) + + public string GetBranchName() { - repositoryBranch = buildSystem.AzurePipelines.Environment.Repository.SourceBranchName; + var buildSystem = context.BuildSystem(); + var repositoryBranch = context.ExecGitCmd("rev-parse --abbrev-ref HEAD").Single(); + if (buildSystem.IsRunningOnAppVeyor) + { + repositoryBranch = buildSystem.AppVeyor.Environment.Repository.Branch; + } + else if (buildSystem.IsRunningOnAzurePipelines) + { + repositoryBranch = buildSystem.AzurePipelines.Environment.Repository.SourceBranchName; + } + else if (buildSystem.IsRunningOnGitHubActions) + { + repositoryBranch = buildSystem.GitHubActions.Environment.Workflow.Ref.Replace("refs/heads/", ""); + } + + return repositoryBranch; } - else if (buildSystem.IsRunningOnGitHubActions) + + public string GetRepositoryName() { - repositoryBranch = buildSystem.GitHubActions.Environment.Workflow.Ref.Replace("refs/heads/", ""); + var buildSystem = context.BuildSystem(); + var repositoryName = string.Empty; + if (buildSystem.IsRunningOnAppVeyor) + { + repositoryName = buildSystem.AppVeyor.Environment.Repository.Name; + } + else if (buildSystem.IsRunningOnAzurePipelines) + { + repositoryName = buildSystem.AzurePipelines.Environment.Repository.RepoName; + } + else if (buildSystem.IsRunningOnGitHubActions) + { + repositoryName = buildSystem.GitHubActions.Environment.Workflow.Repository; + } + + return repositoryName; } + public FilePath? GetGitVersionToolLocation() => + context.GetFiles($"src/GitVersion.App/bin/{Constants.DefaultConfiguration}/net{Constants.DotnetLtsLatest}/gitversion.dll").SingleOrDefault(); - return repositoryBranch; + public FilePath? GetGitVersionDotnetToolLocation() => + context.MakeAbsolute(Paths.Tools.Combine("gitversion").CombineWithFilePath("gitversion.dll")); + + public FilePath? GetSchemaDotnetToolLocation() => + context.MakeAbsolute(Paths.Tools.Combine("schema").CombineWithFilePath("schema.dll")); } - public static string GetRepositoryName(this ICakeContext context) + extension(IAzurePipelinesCommands _) { - var buildSystem = context.BuildSystem(); - string repositoryName = string.Empty; - if (buildSystem.IsRunningOnAppVeyor) - { - repositoryName = buildSystem.AppVeyor.Environment.Repository.Name; - } - else if (buildSystem.IsRunningOnAzurePipelines) - { - repositoryName = buildSystem.AzurePipelines.Environment.Repository.RepoName; - } - else if (buildSystem.IsRunningOnGitHubActions) - { - repositoryName = buildSystem.GitHubActions.Environment.Workflow.Repository; - } - - return repositoryName; + private void StartGroup(ICakeContext context, string title) => context.Information("##[group]{0}", title); + private void EndGroup(ICakeContext context) => context.Information("##[endgroup]"); } - - private static void StartGroup(this IAzurePipelinesCommands _, ICakeContext context, string title) => context.Information("##[group]{0}", title); - - private static void EndGroup(this IAzurePipelinesCommands _, ICakeContext context) => context.Information("##[endgroup]"); - - public static FilePath? GetGitVersionToolLocation(this ICakeContext context) => - context.GetFiles($"src/GitVersion.App/bin/{Constants.DefaultConfiguration}/net{Constants.DotnetLtsLatest}/gitversion.dll").SingleOrDefault(); - public static FilePath? GetGitVersionDotnetToolLocation(this ICakeContext context) => - context.MakeAbsolute(Paths.Tools.Combine("gitversion").CombineWithFilePath("gitversion.dll")); - - public static FilePath? GetSchemaDotnetToolLocation(this ICakeContext context) => - context.MakeAbsolute(Paths.Tools.Combine("schema").CombineWithFilePath("schema.dll")); } diff --git a/build/common/Utilities/DockerContextExtensions.cs b/build/common/Utilities/DockerContextExtensions.cs index 0c8443c1f8..2eb3345d1f 100644 --- a/build/common/Utilities/DockerContextExtensions.cs +++ b/build/common/Utilities/DockerContextExtensions.cs @@ -22,255 +22,260 @@ public static class DockerContextExtensions $"org.opencontainers.image.created={DateTime.UtcNow:O}", ]; - public static bool SkipImageTesting(this ICakeContext context, DockerImage dockerImage) + extension(BuildContextBase context) { - var (distro, targetFramework, architecture, _, _) = dockerImage; - - switch (architecture) + public bool SkipImageTesting(DockerImage dockerImage) { - case Architecture.Amd64: - case Architecture.Arm64 when context.IsRunningOnArm64(): - return false; - default: - context.Information($"Skipping Target: {targetFramework}, Distro: {distro}, Arch: {architecture}"); - return true; + var (distro, targetFramework, architecture, _, _) = dockerImage; + + switch (architecture) + { + case Architecture.Amd64: + case Architecture.Arm64 when context.IsRunningOnArm64(): + return false; + default: + context.Information($"Skipping Target: {targetFramework}, Distro: {distro}, Arch: {architecture}"); + return true; + } } - } - public static void DockerBuildImage(this BuildContextBase context, DockerImage dockerImage) - { - if (context.Version == null) return; + public void DockerBuildImage(DockerImage dockerImage) + { + if (context.Version == null) return; - var (distro, targetFramework, arch, registry, _) = dockerImage; + var (distro, targetFramework, arch, registry, _) = dockerImage; - context.Information($"Building image: {dockerImage}"); + context.Information($"Building image: {dockerImage}"); - var workDir = Paths.Build.Combine("docker"); - var tags = context.GetDockerTags(dockerImage, arch); + var workDir = Paths.Build.Combine("docker"); + var tags = context.GetDockerTags(dockerImage, arch); - var suffix = arch.ToSuffix(); - var imageSuffix = $"({distro}-{context.Version.NugetVersion}-{targetFramework}-{suffix})"; - var baseNameSuffix = $"{registry}/{Constants.DockerBaseImageName}:{distro}-runtime-{targetFramework}-{suffix}"; - var description = $"org.opencontainers.image.description=GitVersion images {imageSuffix}"; - var baseName = $"org.opencontainers.image.base.name={baseNameSuffix}"; - var version = $"org.opencontainers.image.version={context.Version.NugetVersion}"; - var revision = $"org.opencontainers.image.revision={context.Version.GitVersion.Sha}"; - var source = $"org.opencontainers.image.source=https://github.com/GitTools/GitVersion/blob/{context.Version.GitVersion.Sha}/build/docker/Dockerfile"; + var suffix = arch.ToSuffix(); + var imageSuffix = $"({distro}-{context.Version.NugetVersion}-{targetFramework}-{suffix})"; + var baseNameSuffix = $"{registry}/{Constants.DockerBaseImageName}:{distro}-runtime-{targetFramework}-{suffix}"; + var description = $"org.opencontainers.image.description=GitVersion images {imageSuffix}"; + var baseName = $"org.opencontainers.image.base.name={baseNameSuffix}"; + var version = $"org.opencontainers.image.version={context.Version.NugetVersion}"; + var revision = $"org.opencontainers.image.revision={context.Version.GitVersion.Sha}"; + var source = $"org.opencontainers.image.source=https://github.com/GitTools/GitVersion/blob/{context.Version.GitVersion.Sha}/build/docker/Dockerfile"; + + var buildSettings = new DockerBuildXBuildSettings + { + Rm = true, + Pull = true, + // NoCache = true, + Tag = tags.ToArray(), + Platform = [$"linux/{suffix}"], + Output = ["type=docker,oci-mediatypes=true"], + File = workDir.CombineWithFilePath("Dockerfile").FullPath, + BuildArg = + [ + "nugetFolder=/nuget", + $"REGISTRY={registry}", + $"DOTNET_VERSION={targetFramework}", + $"DISTRO={distro}", + $"VERSION={context.Version.NugetVersion}" + ], + Label = + [ + "maintainers=GitTools Maintainers", + .. Annotations, + baseName, + version, + source, + revision, + description + ], + Annotation = + [ + .. Annotations, + baseName, + version, + source, + revision, + description + ] + }; + + context.DockerBuildXBuild(buildSettings, workDir.ToString()); + } - var buildSettings = new DockerBuildXBuildSettings + public void DockerBuildXBuild(DockerBuildXBuildSettings settings, + DirectoryPath target) { - Rm = true, - Pull = true, - // NoCache = true, - Tag = tags.ToArray(), - Platform = [$"linux/{suffix}"], - Output = ["type=docker,oci-mediatypes=true"], - File = workDir.CombineWithFilePath("Dockerfile").FullPath, - BuildArg = - [ - "nugetFolder=/nuget", - $"REGISTRY={registry}", - $"DOTNET_VERSION={targetFramework}", - $"DISTRO={distro}", - $"VERSION={context.Version.NugetVersion}" - ], - Label = - [ - "maintainers=GitTools Maintainers", - .. Annotations, - baseName, - version, - source, - revision, - description - ], - Annotation = - [ - .. Annotations, - baseName, - version, - source, - revision, - description - ] - }; + ArgumentNullException.ThrowIfNull(context); + var runner = context.CreateRunner(); + runner.Run("buildx build", settings, [target.ToString().EscapeProcessArgument()]); + } - context.DockerBuildXBuild(buildSettings, workDir.ToString()); - } + public void DockerManifest(DockerImage dockerImage) + { + ArgumentNullException.ThrowIfNull(context.Version); + var manifestTags = context.GetDockerTags(dockerImage); + foreach (var tag in manifestTags) + { + var amd64Tag = $"{tag}-{Architecture.Amd64.ToSuffix()}"; + var arm64Tag = $"{tag}-{Architecture.Arm64.ToSuffix()}"; - public static void DockerBuildXBuild(this ICakeContext context, DockerBuildXBuildSettings settings, - DirectoryPath target) - { - ArgumentNullException.ThrowIfNull(context); - var runner = context.CreateRunner(); - runner.Run("buildx build", settings, [target.ToString().EscapeProcessArgument()]); - } + var settings = GetManifestSettings(dockerImage, context.Version, tag); + context.DockerBuildXImageToolsCreate(settings, [amd64Tag, arm64Tag]); + } + } - public static void DockerManifest(this BuildContextBase context, DockerImage dockerImage) - { - ArgumentNullException.ThrowIfNull(context.Version); - var manifestTags = context.GetDockerTags(dockerImage); - foreach (var tag in manifestTags) + private void DockerBuildXImageToolsCreate(DockerBuildXImageToolsCreateSettings settings, + IEnumerable? target = null) { - var amd64Tag = $"{tag}-{Architecture.Amd64.ToSuffix()}"; - var arm64Tag = $"{tag}-{Architecture.Arm64.ToSuffix()}"; - - var settings = GetManifestSettings(dockerImage, context.Version, tag); - context.DockerBuildXImageToolsCreate(settings, [amd64Tag, arm64Tag]); + ArgumentNullException.ThrowIfNull(context); + var runner = context.CreateRunner(); + runner.Run("buildx imagetools create", settings, target?.ToArray() ?? []); } - } - public static void DockerBuildXImageToolsCreate(this ICakeContext context, - DockerBuildXImageToolsCreateSettings settings, - IEnumerable? target = null) - { - ArgumentNullException.ThrowIfNull(context); - var runner = context.CreateRunner(); - runner.Run("buildx imagetools create", settings, target?.ToArray() ?? []); - } + private GenericDockerRunner CreateRunner() + where TSettings : AutoToolSettings, new() => + new(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools); - private static GenericDockerRunner CreateRunner(this ICakeContext context) - where TSettings : AutoToolSettings, new() => - new(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools); + public void DockerPushImage(DockerImage dockerImage) + { + var tags = context.GetDockerTags(dockerImage, dockerImage.Architecture); + foreach (var tag in tags) + { + context.DockerPush(tag); + } + } - public static void DockerPushImage(this BuildContextBase context, DockerImage dockerImage) - { - var tags = context.GetDockerTags(dockerImage, dockerImage.Architecture); - foreach (var tag in tags) + public void DockerPullImage(DockerImage dockerImage) { - context.DockerPush(tag); + var tag = $"{dockerImage.DockerImageName()}:{dockerImage.Distro}-sdk-{dockerImage.TargetFramework}"; + var platform = $"linux/{dockerImage.Architecture.ToString().ToLower()}"; + context.DockerPull(new() { Platform = platform }, tag); } - } - public static DockerBuildXImageToolsCreateSettings GetManifestSettings(DockerImage dockerImage, BuildVersion buildVersion, string tag) - { - var imageSuffix = $"({dockerImage.Distro}-{buildVersion.NugetVersion}-{dockerImage.TargetFramework})"; - var description = $"org.opencontainers.image.description=GitVersion images {imageSuffix}"; - var version = $"org.opencontainers.image.version={buildVersion.NugetVersion}"; - var revision = $"org.opencontainers.image.revision={buildVersion.GitVersion.Sha}"; - var settings = new DockerBuildXImageToolsCreateSettings + public void DockerTestImage(DockerImage dockerImage) { - Tag = [tag], - Annotation = - [ - .. Annotations.Select(a => "index:" + a).ToArray(), - $"index:{description}", - $"index:{version}", - $"index:{revision}" - ] - }; - return settings; - } + var tags = context.GetDockerTags(dockerImage, dockerImage.Architecture); + foreach (var tag in tags) + { + context.DockerTestRun(tag, dockerImage.Architecture, "/repo", ["/showvariable", "FullSemver", "/nocache"]); + } + } - public static void DockerPullImage(this ICakeContext context, DockerImage dockerImage) - { - var tag = $"{dockerImage.DockerImageName()}:{dockerImage.Distro}-sdk-{dockerImage.TargetFramework}"; - var platform = $"linux/{dockerImage.Architecture.ToString().ToLower()}"; - context.DockerPull(new() { Platform = platform }, tag); - } + public void DockerTestArtifact(DockerImage dockerImage, string cmd) + { + var tag = $"{dockerImage.DockerImageName()}:{dockerImage.Distro}-sdk-{dockerImage.TargetFramework}"; + context.DockerTestRun(tag, dockerImage.Architecture, "sh", [cmd]); + } - public static void DockerTestImage(this BuildContextBase context, DockerImage dockerImage) - { - var tags = context.GetDockerTags(dockerImage, dockerImage.Architecture); - foreach (var tag in tags) + private void DockerTestRun(string image, Architecture arch, string command, + params string[] args) { - context.DockerTestRun(tag, dockerImage.Architecture, "/repo", "/showvariable", "FullSemver", "/nocache"); + ArgumentNullException.ThrowIfNull(context.Version?.GitVersion.FullSemVer); + var settings = GetDockerRunSettings(context, arch); + context.Information($"Testing image: {image}"); + var output = context.DockerRun(settings, image, command, args); + context.Information("Output : " + output); + + Assert.Contains(context.Version.GitVersion.FullSemVer, output); } - } - public static void DockerTestArtifact(this BuildContextBase context, DockerImage dockerImage, string cmd) - { - var tag = $"{dockerImage.DockerImageName()}:{dockerImage.Distro}-sdk-{dockerImage.TargetFramework}"; - context.DockerTestRun(tag, dockerImage.Architecture, "sh", cmd); - } + private IEnumerable GetDockerTags(DockerImage dockerImage, + Architecture? arch = null) + { + var name = dockerImage.DockerImageName(); + var distro = dockerImage.Distro; + var targetFramework = dockerImage.TargetFramework; - private static void DockerTestRun(this BuildContextBase context, string image, Architecture arch, string command, - params string[] args) - { - ArgumentNullException.ThrowIfNull(context.Version?.GitVersion.FullSemVer); - var settings = GetDockerRunSettings(context, arch); - context.Information($"Testing image: {image}"); - var output = context.DockerRun(settings, image, command, args); - context.Information("Output : " + output); + if (context.Version == null) return []; + var tags = new List + { + $"{name}:{context.Version.Version}-{distro}-{targetFramework}", + $"{name}:{context.Version.SemVersion}-{distro}-{targetFramework}", + }; - Assert.Contains(context.Version.GitVersion.FullSemVer, output); - } + if (distro == Constants.DockerDistroLatest && targetFramework == Constants.DotnetLtsLatest) + { + tags.Add($"{name}:{context.Version.SemVersion}"); + + if (context.IsStableRelease) + { + tags.AddRange( + [ + $"{name}:{context.Version.Version}", + $"{name}:latest", + $"{name}:latest-{targetFramework}", + $"{name}:latest-{distro}", + $"{name}:latest-{distro}-{targetFramework}", + ]); + } + } - private static IEnumerable GetDockerTags(this BuildContextBase context, DockerImage dockerImage, - Architecture? arch = null) - { - var name = dockerImage.DockerImageName(); - var distro = dockerImage.Distro; - var targetFramework = dockerImage.TargetFramework; + if (!arch.HasValue) return tags.Distinct(); - if (context.Version == null) return []; - var tags = new List - { - $"{name}:{context.Version.Version}-{distro}-{targetFramework}", - $"{name}:{context.Version.SemVersion}-{distro}-{targetFramework}", - }; + var suffix = arch.Value.ToSuffix(); + return tags.Select(x => $"{x}-{suffix}").Distinct(); + } - if (distro == Constants.DockerDistroLatest && targetFramework == Constants.DotnetLtsLatest) + private DockerContainerRunSettings GetDockerRunSettings(Architecture arch) { - tags.Add($"{name}:{context.Version.SemVersion}"); - - if (context.IsStableRelease) + var currentDir = context.MakeAbsolute(context.Directory(".")); + var root = string.Empty; + var settings = new DockerContainerRunSettings { - tags.AddRange( + Rm = true, + Volume = [ - $"{name}:{context.Version.Version}", - $"{name}:latest", - $"{name}:latest-{targetFramework}", - $"{name}:latest-{distro}", - $"{name}:latest-{distro}-{targetFramework}", - ]); + $"{currentDir}:{root}/repo", + $"{currentDir}/tests/scripts:{root}/scripts", + $"{currentDir}/artifacts/packages/nuget:{root}/nuget", + $"{currentDir}/artifacts/packages/native:{root}/native" + ], + Platform = $"linux/{arch.ToString().ToLower()}" + }; + + if (context.IsAzurePipelineBuild) + { + settings.Env = + [ + "TF_BUILD=true", + $"BUILD_SOURCEBRANCH={context.EnvironmentVariable("BUILD_SOURCEBRANCH")}" + ]; } - } - if (!arch.HasValue) return tags.Distinct(); + if (context.IsGitHubActionsBuild) + { + settings.Env = + [ + "GITHUB_ACTIONS=true", + $"GITHUB_REF={context.EnvironmentVariable("GITHUB_REF")}" + ]; + } - var suffix = arch.Value.ToSuffix(); - return tags.Select(x => $"{x}-{suffix}").Distinct(); + return settings; + } } - private static string DockerImageName(this DockerImage image) => - $"{image.Registry}/{(image.UseBaseImage ? Constants.DockerBaseImageName : Constants.DockerImageName)}"; + extension(DockerImage image) + { + private string DockerImageName() => + $"{image.Registry}/{(image.UseBaseImage ? Constants.DockerBaseImageName : Constants.DockerImageName)}"; + } - private static DockerContainerRunSettings GetDockerRunSettings(this BuildContextBase context, Architecture arch) + private static DockerBuildXImageToolsCreateSettings GetManifestSettings(DockerImage dockerImage, BuildVersion buildVersion, string tag) { - var currentDir = context.MakeAbsolute(context.Directory(".")); - var root = string.Empty; - var settings = new DockerContainerRunSettings + var imageSuffix = $"({dockerImage.Distro}-{buildVersion.NugetVersion}-{dockerImage.TargetFramework})"; + var description = $"org.opencontainers.image.description=GitVersion images {imageSuffix}"; + var version = $"org.opencontainers.image.version={buildVersion.NugetVersion}"; + var revision = $"org.opencontainers.image.revision={buildVersion.GitVersion.Sha}"; + var settings = new DockerBuildXImageToolsCreateSettings { - Rm = true, - Volume = + Tag = [tag], + Annotation = [ - $"{currentDir}:{root}/repo", - $"{currentDir}/tests/scripts:{root}/scripts", - $"{currentDir}/artifacts/packages/nuget:{root}/nuget", - $"{currentDir}/artifacts/packages/native:{root}/native" - ], - Platform = $"linux/{arch.ToString().ToLower()}" + .. Annotations.Select(a => "index:" + a).ToArray(), + $"index:{description}", + $"index:{version}", + $"index:{revision}" + ] }; - - if (context.IsAzurePipelineBuild) - { - settings.Env = - [ - "TF_BUILD=true", - $"BUILD_SOURCEBRANCH={context.EnvironmentVariable("BUILD_SOURCEBRANCH")}" - ]; - } - - if (context.IsGitHubActionsBuild) - { - settings.Env = - [ - "GITHUB_ACTIONS=true", - $"GITHUB_REF={context.EnvironmentVariable("GITHUB_REF")}" - ]; - } - return settings; } } diff --git a/build/common/Utilities/Extensions.cs b/build/common/Utilities/Extensions.cs index 5691ef09fa..efe6216d88 100644 --- a/build/common/Utilities/Extensions.cs +++ b/build/common/Utilities/Extensions.cs @@ -5,43 +5,47 @@ public static class Extensions private static readonly char[] CharsThatRequireQuoting = [' ', '"']; private static readonly char[] CharsThatRequireEscaping = ['\\', '"']; - public static IEnumerable FindAllDerivedTypes(this Assembly assembly, Type baseType) => - from type in assembly.GetExportedTypes() - let info = type.GetTypeInfo() - where baseType.IsAssignableFrom(type) && info.IsClass && !info.IsAbstract - select type; - - public static string GetTaskDescription(this Type task) + extension(Assembly assembly) { - ArgumentNullException.ThrowIfNull(task); - - var attribute = task.GetCustomAttribute(); - return attribute != null ? attribute.Description : string.Empty; + public IEnumerable FindAllDerivedTypes(Type baseType) => + from type in assembly.GetExportedTypes() + let info = type.GetTypeInfo() + where baseType.IsAssignableFrom(type) && info.IsClass && !info.IsAbstract + select type; } - public static string GetTaskName(this Type task) + extension(Type task) { - ArgumentNullException.ThrowIfNull(task); + public string GetTaskDescription() + { + ArgumentNullException.ThrowIfNull(task); - var attribute = task.GetCustomAttribute(); - return attribute != null ? attribute.Name : task.Name; - } + var attribute = task.GetCustomAttribute(); + return attribute != null ? attribute.Description : string.Empty; + } - public static string GetTaskArguments(this Type task) - { - ArgumentNullException.ThrowIfNull(task); + public string GetTaskName() + { + ArgumentNullException.ThrowIfNull(task); + + var attribute = task.GetCustomAttribute(); + return attribute != null ? attribute.Name : task.Name; + } - var attributes = task.GetCustomAttributes().ToArray(); - if (attributes.Length != 0) + public string GetTaskArguments() { - var arguments = attributes.Select(attribute => $"[--{attribute.Name} ({string.Join(" | ", attribute.PossibleValues)})]"); - return string.Join(" ", arguments); + ArgumentNullException.ThrowIfNull(task); + + var attributes = task.GetCustomAttributes().ToArray(); + if (attributes.Length != 0) + { + var arguments = attributes.Select(attribute => $"[--{attribute.Name} ({string.Join(" | ", attribute.PossibleValues)})]"); + return string.Join(" ", arguments); + } + return string.Empty; } - return string.Empty; } - public static DirectoryPath Combine(this string path, string segment) => DirectoryPath.FromString(path).Combine(segment); - public static FilePath CombineWithFilePath(this string path, string segment) => DirectoryPath.FromString(path).CombineWithFilePath(segment); public static DirectoryPath GetRootDirectory() { var currentPath = DirectoryPath.FromString(Directory.GetCurrentDirectory()); @@ -53,55 +57,61 @@ public static DirectoryPath GetRootDirectory() return currentPath; } - public static string ToSuffix(this Architecture arch) => arch.ToString().ToLower(); - - /// - /// Escapes arbitrary values so that the process receives the exact string you intend and injection is impossible. - /// Spec: https://msdn.microsoft.com/en-us/library/bb776391.aspx - /// - public static string EscapeProcessArgument(this string literalValue, bool alwaysQuote = false) + extension(Architecture arch) { - if (string.IsNullOrEmpty(literalValue)) return "\"\""; + public string ToSuffix() => arch.ToString().ToLower(); + } - if (literalValue.IndexOfAny(CharsThatRequireQuoting) == -1) // Happy path + extension(string literalValue) + { + /// + /// Escapes arbitrary values so that the process receives the exact string you intend and injection is impossible. + /// Spec: https://msdn.microsoft.com/en-us/library/bb776391.aspx + /// + public string EscapeProcessArgument(bool alwaysQuote = false) { - if (!alwaysQuote) return literalValue; - if (literalValue[^1] != '\\') return "\"" + literalValue + "\""; - } - - var sb = new StringBuilder(literalValue.Length + 8).Append('"'); + if (string.IsNullOrEmpty(literalValue)) return "\"\""; - var nextPosition = 0; - while (true) - { - var nextEscapeChar = literalValue.IndexOfAny(CharsThatRequireEscaping, nextPosition); - if (nextEscapeChar == -1) break; + if (literalValue.IndexOfAny(CharsThatRequireQuoting) == -1) // Happy path + { + if (!alwaysQuote) return literalValue; + if (literalValue[^1] != '\\') return "\"" + literalValue + "\""; + } - sb.Append(literalValue, nextPosition, nextEscapeChar - nextPosition); - nextPosition = nextEscapeChar + 1; + var sb = new StringBuilder(literalValue.Length + 8).Append('"'); - switch (literalValue[nextEscapeChar]) + var nextPosition = 0; + while (true) { - case '"': - sb.Append("\\\""); - break; - case '\\': - var numBackslashes = 1; - while (nextPosition < literalValue.Length && literalValue[nextPosition] == '\\') - { - numBackslashes++; - nextPosition++; - } - if (nextPosition == literalValue.Length || literalValue[nextPosition] == '"') - numBackslashes <<= 1; - - for (; numBackslashes != 0; numBackslashes--) - sb.Append('\\'); - break; + var nextEscapeChar = literalValue.IndexOfAny(CharsThatRequireEscaping, nextPosition); + if (nextEscapeChar == -1) break; + + sb.Append(literalValue, nextPosition, nextEscapeChar - nextPosition); + nextPosition = nextEscapeChar + 1; + + switch (literalValue[nextEscapeChar]) + { + case '"': + sb.Append("\\\""); + break; + case '\\': + var numBackslashes = 1; + while (nextPosition < literalValue.Length && literalValue[nextPosition] == '\\') + { + numBackslashes++; + nextPosition++; + } + if (nextPosition == literalValue.Length || literalValue[nextPosition] == '"') + numBackslashes <<= 1; + + for (; numBackslashes != 0; numBackslashes--) + sb.Append('\\'); + break; + } } - } - sb.Append(literalValue, nextPosition, literalValue.Length - nextPosition).Append('"'); - return sb.ToString(); + sb.Append(literalValue, nextPosition, literalValue.Length - nextPosition).Append('"'); + return sb.ToString(); + } } } From b22d644b9403c5aee20f6a9db86f9a74daeaca46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 12:27:00 +0000 Subject: [PATCH 060/358] (build deps): Bump jetbrains/qodana-action from 2025.2.2 to 2025.2.3 Bumps [jetbrains/qodana-action](https://github.com/jetbrains/qodana-action) from 2025.2.2 to 2025.2.3. - [Release notes](https://github.com/jetbrains/qodana-action/releases) - [Commits](https://github.com/jetbrains/qodana-action/compare/v2025.2.2...v2025.2.3) --- updated-dependencies: - dependency-name: jetbrains/qodana-action dependency-version: 2025.2.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/qodana_analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/qodana_analysis.yml b/.github/workflows/qodana_analysis.yml index 76daa8ccbf..b148269037 100644 --- a/.github/workflows/qodana_analysis.yml +++ b/.github/workflows/qodana_analysis.yml @@ -26,7 +26,7 @@ jobs: global-json-file: global.json - name: 'Qodana Scan' - uses: jetbrains/qodana-action@v2025.2.2 + uses: jetbrains/qodana-action@v2025.2.3 with: args: --baseline,qodana.sarif.json cache-default-branch-only: true From 876b777bbe3e060135350a39fabe7d45bb0784ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 7 Dec 2025 12:53:34 +0000 Subject: [PATCH 061/358] (deps): Bump NUnit3TestAdapter from 5.2.0 to 6.0.0 --- updated-dependencies: - dependency-name: NUnit3TestAdapter dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 8a92219fa2..a11bfbbcf4 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -20,7 +20,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + From e86a855f2f4c374f4a955c0fabb8d9e6aabe7e61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 13:01:33 +0000 Subject: [PATCH 062/358] (deps): Bump NUnit3TestAdapter from 5.2.0 to 6.0.0 --- updated-dependencies: - dependency-name: NUnit3TestAdapter dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index d6d2af3c30..24efdafc09 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -36,7 +36,7 @@ - + From b1bc314cf24dd6a87cf2ac9d068d91bf58abe563 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 12:55:42 +0000 Subject: [PATCH 063/358] (deps): Bump JsonSchema.Net.Generation from 5.1.1 to 6.0.0 --- updated-dependencies: - dependency-name: JsonSchema.Net.Generation dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 24efdafc09..d283e7111b 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -21,7 +21,7 @@ - + From 3c646e2ce50b9da86b6d4245f078af824ef27840 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 12:26:21 +0000 Subject: [PATCH 064/358] (sdk): Bump dotnet-sdk from 10.0.100 to 10.0.101 Bumps [dotnet-sdk](https://github.com/dotnet/sdk) from 10.0.100 to 10.0.101. - [Release notes](https://github.com/dotnet/sdk/releases) - [Commits](https://github.com/dotnet/sdk/compare/v10.0.100...v10.0.101) --- updated-dependencies: - dependency-name: dotnet-sdk dependency-version: 10.0.101 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 0845f26b4e..87935393fc 100644 --- a/global.json +++ b/global.json @@ -5,6 +5,6 @@ "src" ], "sdk": { - "version": "10.0.100" + "version": "10.0.101" } } From f110dcb621b521529663b54b64f0400a9caa865b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 13:10:31 +0000 Subject: [PATCH 065/358] (deps): Bump Microsoft.Extensions.DependencyInjection.Abstractions and 3 others Bumps Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.0 to 10.0.1 Bumps Microsoft.Extensions.Logging.Abstractions from 10.0.0 to 10.0.1 Bumps System.CommandLine from 2.0.0 to 2.0.1 Bumps System.Text.Json from 10.0.0 to 10.0.1 --- updated-dependencies: - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Logging.Abstractions dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.CommandLine dependency-version: 2.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index a11bfbbcf4..d31a32926a 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -12,8 +12,8 @@ - - + + @@ -30,8 +30,8 @@ - + - + From 5585285592f6ccaf2a016729b722c6ef838d846c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 12:52:15 +0000 Subject: [PATCH 066/358] (deps): Bump the microsoft group with 9 updates Bumps Microsoft.Extensions.Configuration.CommandLine from 10.0.0 to 10.0.1 Bumps Microsoft.Extensions.DependencyInjection from 10.0.0 to 10.0.1 Bumps Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.0 to 10.0.1 Bumps Microsoft.Extensions.FileSystemGlobbing from 10.0.0 to 10.0.1 Bumps Microsoft.Extensions.Hosting from 10.0.0 to 10.0.1 Bumps Microsoft.Extensions.Options from 10.0.0 to 10.0.1 Bumps System.Collections.Immutable from 10.0.0 to 10.0.1 Bumps System.Reflection.Metadata from 10.0.0 to 10.0.1 Bumps System.Text.Json from 10.0.0 to 10.0.1 --- updated-dependencies: - dependency-name: Microsoft.Extensions.Configuration.CommandLine dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.FileSystemGlobbing dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Hosting dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Options dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Collections.Immutable dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Reflection.Metadata dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 18 +++++++++--------- .../GitVersion.Testing.csproj | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index d283e7111b..0f5f6df6dd 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -13,8 +13,8 @@ - - + + @@ -27,10 +27,10 @@ - - - - + + + + @@ -38,13 +38,13 @@ - + - + - + diff --git a/src/GitVersion.Testing/GitVersion.Testing.csproj b/src/GitVersion.Testing/GitVersion.Testing.csproj index 08c0eba912..ac7609e9f6 100644 --- a/src/GitVersion.Testing/GitVersion.Testing.csproj +++ b/src/GitVersion.Testing/GitVersion.Testing.csproj @@ -17,6 +17,7 @@ + From 922e1e1321fc49650356ea8a8a837425427d6e3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 13:17:51 +0000 Subject: [PATCH 067/358] (deps): Bump Cake.Codecov from 3.0.0 to 3.0.1 --- updated-dependencies: - dependency-name: Cake.Codecov dependency-version: 3.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Directory.Packages.props b/build/Directory.Packages.props index 76cf1e2a46..3daede9cc2 100644 --- a/build/Directory.Packages.props +++ b/build/Directory.Packages.props @@ -4,7 +4,7 @@ - + From 31bcda110e2756eca98ae08efa93a06f9ee763af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 12:52:37 +0000 Subject: [PATCH 068/358] (deps): Bump Cake.Codecov from 3.0.1 to 6.0.0 --- updated-dependencies: - dependency-name: Cake.Codecov dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- build/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Directory.Packages.props b/build/Directory.Packages.props index 3daede9cc2..7c91310186 100644 --- a/build/Directory.Packages.props +++ b/build/Directory.Packages.props @@ -4,7 +4,7 @@ - + From f8c1a888af7f300a0984bcf5568a3c6de6974bc9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 12:26:47 +0000 Subject: [PATCH 069/358] (build deps): Bump actions/cache from 4 to 5 in the actions group Bumps the actions group with 1 update: [actions/cache](https://github.com/actions/cache). Updates `actions/cache` from 4 to 5 - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] --- .github/workflows/_prepare.yml | 4 ++-- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/docs.yml | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/_prepare.yml b/.github/workflows/_prepare.yml index ffe8340d47..5315575cd9 100644 --- a/.github/workflows/_prepare.yml +++ b/.github/workflows/_prepare.yml @@ -28,13 +28,13 @@ jobs: - name: Cache cake frosting id: cache-cake - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: run key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - name: Use cached tools id: cache-tools - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: tools key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 1966b69e27..a7572aaacf 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -62,7 +62,7 @@ jobs: - name: Cache cake frosting id: cache-cake - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: run key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 3c3aa34a9c..07ee84ba2a 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -44,14 +44,14 @@ jobs: - name: Cache cake frosting id: cache-cake - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: run key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - name: Use cached tools id: cache-tools - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: tools key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} @@ -65,7 +65,7 @@ jobs: - name: Cache Node Modules id: cache-node - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ${{ steps.cache-node-dir.outputs.dir }} key: node-${{ runner.os }}-${{ hashFiles('./package-lock.json') }} From 658d53c536867fcb0e7996947ca39c8b7b80d32a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 12:26:53 +0000 Subject: [PATCH 070/358] (build deps): Bump jetbrains/qodana-action from 2025.2.3 to 2025.2.4 Bumps [jetbrains/qodana-action](https://github.com/jetbrains/qodana-action) from 2025.2.3 to 2025.2.4. - [Release notes](https://github.com/jetbrains/qodana-action/releases) - [Commits](https://github.com/jetbrains/qodana-action/compare/v2025.2.3...v2025.2.4) --- updated-dependencies: - dependency-name: jetbrains/qodana-action dependency-version: 2025.2.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/qodana_analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/qodana_analysis.yml b/.github/workflows/qodana_analysis.yml index b148269037..9bf3a25a6b 100644 --- a/.github/workflows/qodana_analysis.yml +++ b/.github/workflows/qodana_analysis.yml @@ -26,7 +26,7 @@ jobs: global-json-file: global.json - name: 'Qodana Scan' - uses: jetbrains/qodana-action@v2025.2.3 + uses: jetbrains/qodana-action@v2025.2.4 with: args: --baseline,qodana.sarif.json cache-default-branch-only: true From ceeb4f88d5670d3a03afda1f3a1d9bc7f71064c0 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 12 Dec 2025 14:46:19 +0100 Subject: [PATCH 071/358] remove System.Collections.Immutable package no longer requires direct reference --- src/GitVersion.Testing/GitVersion.Testing.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/GitVersion.Testing/GitVersion.Testing.csproj b/src/GitVersion.Testing/GitVersion.Testing.csproj index ac7609e9f6..08c0eba912 100644 --- a/src/GitVersion.Testing/GitVersion.Testing.csproj +++ b/src/GitVersion.Testing/GitVersion.Testing.csproj @@ -17,7 +17,6 @@ - From 83ed69ebc4f91485e9ce6ab1601ba53375f19a26 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 12 Dec 2025 17:59:59 +0100 Subject: [PATCH 072/358] Revert "(deps): Bump NUnit3TestAdapter from 5.2.0 to 6.0.0" This reverts commit c11be32a198fdbb50df1e307656e3470cd8652b1. --- new-cli/Directory.Packages.props | 4 ++-- src/Directory.Packages.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index d31a32926a..5653fe38d8 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -20,7 +20,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + @@ -34,4 +34,4 @@ - + \ No newline at end of file diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 0f5f6df6dd..cd432137f7 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -36,7 +36,7 @@ - + From 51171652e4ec85a8c409390f2d77e3c02d90d330 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Dec 2025 12:26:49 +0000 Subject: [PATCH 073/358] (build deps): Bump the actions group with 2 updates Bumps the actions group with 2 updates: [actions/download-artifact](https://github.com/actions/download-artifact) and [actions/upload-artifact](https://github.com/actions/upload-artifact). Updates `actions/download-artifact` from 6 to 7 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v6...v7) Updates `actions/upload-artifact` from 5 to 6 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] --- .github/workflows/_artifacts_linux.yml | 4 ++-- .github/workflows/_artifacts_windows.yml | 2 +- .github/workflows/_build.yml | 6 +++--- .github/workflows/_docker.yml | 2 +- .github/workflows/_publish.yml | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/_artifacts_linux.yml b/.github/workflows/_artifacts_linux.yml index a0633f41d0..53caa6174e 100644 --- a/.github/workflows/_artifacts_linux.yml +++ b/.github/workflows/_artifacts_linux.yml @@ -37,13 +37,13 @@ jobs: name: Restore State uses: ./.github/actions/cache-restore - - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 name: Download nuget packages with: name: nuget path: ${{ github.workspace }}/artifacts/packages/nuget - - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 name: Download native packages with: name: native-Linux diff --git a/.github/workflows/_artifacts_windows.yml b/.github/workflows/_artifacts_windows.yml index 31486885be..0a94a90a72 100644 --- a/.github/workflows/_artifacts_windows.yml +++ b/.github/workflows/_artifacts_windows.yml @@ -24,7 +24,7 @@ jobs: name: Restore State uses: ./.github/actions/cache-restore - - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 name: Download nuget packages with: name: nuget diff --git a/.github/workflows/_build.yml b/.github/workflows/_build.yml index 835f7f8f7e..7df2b27ba0 100644 --- a/.github/workflows/_build.yml +++ b/.github/workflows/_build.yml @@ -29,21 +29,21 @@ jobs: run: dotnet run/build.dll --target=Package - name: 'Upload nuget packages' - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 if: matrix.os == 'windows-2025' with: name: nuget path: ${{ github.workspace }}/artifacts/packages/nuget - name: 'Upload native packages' - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 if: matrix.os == 'windows-2025' with: name: native-${{ runner.os }} path: ${{ github.workspace }}/artifacts/packages/native/*.zip - name: 'Upload native packages' - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 if: matrix.os != 'windows-2025' with: name: native-${{ runner.os }} diff --git a/.github/workflows/_docker.yml b/.github/workflows/_docker.yml index b070134d5f..473b17734c 100644 --- a/.github/workflows/_docker.yml +++ b/.github/workflows/_docker.yml @@ -37,7 +37,7 @@ jobs: name: Restore State uses: ./.github/actions/cache-restore - - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 name: Download nuget packages with: name: nuget diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index c8af9ec576..36b262e5af 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -28,7 +28,7 @@ jobs: name: Restore State uses: ./.github/actions/cache-restore - - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 name: Download nuget packages with: name: nuget From 67c2431ae7b38f0210cbf7fe25d5bea36bb66960 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 14 Dec 2025 13:03:10 +0000 Subject: [PATCH 074/358] (deps): Bump JunitXml.TestLogger from 7.0.2 to 7.1.0 --- updated-dependencies: - dependency-name: JunitXml.TestLogger dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index cd432137f7..31204c802c 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -22,7 +22,7 @@ - + From c9970acd782caf12a69875b65f5b822f737b20a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 12:56:14 +0000 Subject: [PATCH 075/358] (deps): Bump the analyzers group with 2 updates Bumps Roslynator.Analyzers from 4.14.1 to 4.15.0 Bumps Roslynator.Formatting.Analyzers from 4.14.1 to 4.15.0 --- updated-dependencies: - dependency-name: Roslynator.Analyzers dependency-version: 4.15.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: analyzers - dependency-name: Roslynator.Formatting.Analyzers dependency-version: 4.15.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: analyzers - dependency-name: Roslynator.Analyzers dependency-version: 4.15.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: analyzers - dependency-name: Roslynator.Formatting.Analyzers dependency-version: 4.15.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: analyzers ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 4 ++-- src/Directory.Packages.props | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 5653fe38d8..c2bf08a18f 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -22,8 +22,8 @@ - - + + diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 31204c802c..d51be906a4 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -17,8 +17,8 @@ - - + + From 09aee23370fc905a4f638021744210dbdf0262d9 Mon Sep 17 00:00:00 2001 From: Pavel Koneski Date: Sun, 14 Dec 2025 15:42:26 -0800 Subject: [PATCH 076/358] Support integer formatting with specifiers D and B --- src/GitVersion.Core/Formatting/NumericFormatter.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/GitVersion.Core/Formatting/NumericFormatter.cs b/src/GitVersion.Core/Formatting/NumericFormatter.cs index 14b1f791a3..f575e32178 100644 --- a/src/GitVersion.Core/Formatting/NumericFormatter.cs +++ b/src/GitVersion.Core/Formatting/NumericFormatter.cs @@ -20,8 +20,8 @@ public override bool TryFormat(object? value, string format, CultureInfo culture return true; } - // Hexadecimal formatting - if (format.StartsWith("X", StringComparison.OrdinalIgnoreCase) && int.TryParse(s, NumberStyles.Integer, cultureInfo, out var hex)) + // Integer formatting with precision specifier + if ("BDX".Contains(char.ToUpperInvariant(format[0])) && int.TryParse(s, NumberStyles.Integer, cultureInfo, out var hex)) { result = hex.ToString(format, cultureInfo); return true; From 5a8d50e5a34a92bac28216877cdbb7b098d249e0 Mon Sep 17 00:00:00 2001 From: Pavel Koneski Date: Sun, 14 Dec 2025 16:41:10 -0800 Subject: [PATCH 077/358] Add tests --- .../Formatting/NumericFormatterTests.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs index 9b466ead53..e3cecaba18 100644 --- a/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs @@ -1,4 +1,4 @@ -using GitVersion.Formatting; +using GitVersion.Formatting; namespace GitVersion.Tests.Formatting; @@ -21,6 +21,9 @@ public void TryFormat_NullValue_ReturnsFalse() [TestCase("1234.5678", "f2", "1234.57")] [TestCase("1234.5678", "f0", "1235")] [TestCase("1234.5678", "g", "1234.5678")] + [TestCase("1234", "d8", "00001234")] + [TestCase("1234", "x8", "000004d2")] + [TestCase("12", "b8", "00001100")] public void TryFormat_ValidFormats_ReturnsExpectedResult(string input, string format, string expected) { var sut = new NumericFormatter(); From 94fd78c42339c68b4d0b538cbfc3bc9073d5e166 Mon Sep 17 00:00:00 2001 From: Pavel Koneski Date: Sun, 14 Dec 2025 20:28:10 -0800 Subject: [PATCH 078/358] Update documentation --- docs/input/docs/reference/custom-formatting.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/input/docs/reference/custom-formatting.md b/docs/input/docs/reference/custom-formatting.md index c970fea342..a4bae75162 100644 --- a/docs/input/docs/reference/custom-formatting.md +++ b/docs/input/docs/reference/custom-formatting.md @@ -32,6 +32,7 @@ assembly-informational-format: "{Major}.{Minor}.{Patch:F2}-{PreReleaseLabel}" - `C` or `c` (Currency): `{Major:C}` → `"¤1.00"` - `P` or `p` (Percent): `{CommitsSinceVersionSource:P}` → `"12,345.60 %"` - `D` or `d` (Decimal): `{Major:D4}` → `"0001"` +- `B` or `b` (Binary): `{Minor:B4}` → `"0101"` - `X` or `x` (Hexadecimal): `{Patch:X}` → `"FF"` ### Date and Time Formatting From 0537a8adef8ae14d375a481f17c374d2f1626912 Mon Sep 17 00:00:00 2001 From: Pavel Koneski Date: Sun, 14 Dec 2025 21:00:17 -0800 Subject: [PATCH 079/358] Rename local variable hex to n --- src/GitVersion.Core/Formatting/NumericFormatter.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/GitVersion.Core/Formatting/NumericFormatter.cs b/src/GitVersion.Core/Formatting/NumericFormatter.cs index f575e32178..797507522b 100644 --- a/src/GitVersion.Core/Formatting/NumericFormatter.cs +++ b/src/GitVersion.Core/Formatting/NumericFormatter.cs @@ -21,9 +21,9 @@ public override bool TryFormat(object? value, string format, CultureInfo culture } // Integer formatting with precision specifier - if ("BDX".Contains(char.ToUpperInvariant(format[0])) && int.TryParse(s, NumberStyles.Integer, cultureInfo, out var hex)) + if ("BDX".Contains(char.ToUpperInvariant(format[0])) && int.TryParse(s, NumberStyles.Integer, cultureInfo, out var n)) { - result = hex.ToString(format, cultureInfo); + result = n.ToString(format, cultureInfo); return true; } From 616c55214c9c13774159721c086763be2bda7bde Mon Sep 17 00:00:00 2001 From: Pavel Koneski Date: Mon, 15 Dec 2025 12:00:37 -0800 Subject: [PATCH 080/358] Rename local variables to more informative names --- .../Formatting/NumericFormatter.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/GitVersion.Core/Formatting/NumericFormatter.cs b/src/GitVersion.Core/Formatting/NumericFormatter.cs index 797507522b..bb5a296ccc 100644 --- a/src/GitVersion.Core/Formatting/NumericFormatter.cs +++ b/src/GitVersion.Core/Formatting/NumericFormatter.cs @@ -14,30 +14,30 @@ public override bool TryFormat(object? value, string format, CultureInfo culture return false; // Integer formatting - if (format.All(char.IsDigit) && int.TryParse(s, NumberStyles.Integer, cultureInfo, out var i)) + if (format.All(char.IsDigit) && int.TryParse(s, NumberStyles.Integer, cultureInfo, out var integerValue)) { - result = i.ToString(format, cultureInfo); + result = integerValue.ToString(format, cultureInfo); return true; } // Integer formatting with precision specifier - if ("BDX".Contains(char.ToUpperInvariant(format[0])) && int.TryParse(s, NumberStyles.Integer, cultureInfo, out var n)) + if ("BDX".Contains(char.ToUpperInvariant(format[0])) && int.TryParse(s, NumberStyles.Integer, cultureInfo, out var numericValue)) { - result = n.ToString(format, cultureInfo); + result = numericValue.ToString(format, cultureInfo); return true; } // Floating point formatting - if ("FEGNCP".Contains(char.ToUpperInvariant(format[0])) && double.TryParse(s, NumberStyles.Float | NumberStyles.AllowThousands, cultureInfo, out var d)) + if ("FEGNCP".Contains(char.ToUpperInvariant(format[0])) && double.TryParse(s, NumberStyles.Float | NumberStyles.AllowThousands, cultureInfo, out var floatValue)) { - result = d.ToString(format, cultureInfo); + result = floatValue.ToString(format, cultureInfo); return true; } // Decimal formatting - if (decimal.TryParse(s, NumberStyles.Any, cultureInfo, out var dec)) + if (decimal.TryParse(s, NumberStyles.Any, cultureInfo, out var decimalValue)) { - result = dec.ToString(format, cultureInfo); + result = decimalValue.ToString(format, cultureInfo); return true; } From 4c77c472d1ccdacdeb1219e0f1d238bfafb4fe80 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Dec 2025 12:26:50 +0000 Subject: [PATCH 081/358] (build deps): Bump jetbrains/qodana-action from 2025.2.4 to 2025.3.1 Bumps [jetbrains/qodana-action](https://github.com/jetbrains/qodana-action) from 2025.2.4 to 2025.3.1. - [Release notes](https://github.com/jetbrains/qodana-action/releases) - [Commits](https://github.com/jetbrains/qodana-action/compare/v2025.2.4...v2025.3.1) --- updated-dependencies: - dependency-name: jetbrains/qodana-action dependency-version: 2025.3.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/qodana_analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/qodana_analysis.yml b/.github/workflows/qodana_analysis.yml index 9bf3a25a6b..1a1ef71570 100644 --- a/.github/workflows/qodana_analysis.yml +++ b/.github/workflows/qodana_analysis.yml @@ -26,7 +26,7 @@ jobs: global-json-file: global.json - name: 'Qodana Scan' - uses: jetbrains/qodana-action@v2025.2.4 + uses: jetbrains/qodana-action@v2025.3.1 with: args: --baseline,qodana.sarif.json cache-default-branch-only: true From 1ade08baacff4992f2c2af7ae8d7f24b341f658b Mon Sep 17 00:00:00 2001 From: Hardy Hobeck Date: Fri, 19 Dec 2025 15:19:19 +0100 Subject: [PATCH 082/358] fix: ignore mainline merges from same branch --- .../NextVersionCalculatorTests.cs | 16 ++++++ .../MainlineVersionStrategy.cs | 56 ++++++++++--------- 2 files changed, 45 insertions(+), 27 deletions(-) diff --git a/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs index 8078135ed0..f586368f69 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs @@ -119,6 +119,22 @@ public void MergeIntoMainline() fixture.AssertFullSemver("1.0.0", configuration); } + [Test] + public void MergeSelfeIntoMainline() + { + var configuration = TrunkBasedConfigurationBuilder.New.Build(); + + using var fixture = new EmptyRepositoryFixture(); + fixture.MakeACommit(); + fixture.CreateBranch("foo"); + fixture.MakeACommit(); + fixture.MergeTo("foo"); + fixture.Checkout(MainBranch); + fixture.Repository.Merge("foo", Generate.SignatureNow()); + + fixture.AssertFullSemver("0.0.3", configuration); + } + [Test] public void MergeFeatureIntoMainline() { diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs index 7365ec1a7b..a7cd9a342d 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs @@ -232,40 +232,42 @@ private bool IterateOverCommitsRecursive( continue; } - if (mergeMessage.MergedBranch is not null) + if (mergeMessage.MergedBranch is null || mergeMessage.MergedBranch.EquivalentTo(branchName.WithoutOrigin)) { - var childConfiguration = Context.Configuration.GetBranchConfiguration(mergeMessage.MergedBranch); - var childBranchName = mergeMessage.MergedBranch; + continue; + } - if (childConfiguration.IsMainBranch == true) - { - if (configuration.IsMainBranch == true) throw new NotImplementedException(); + var childConfiguration = Context.Configuration.GetBranchConfiguration(mergeMessage.MergedBranch); + var childBranchName = mergeMessage.MergedBranch; - mergedCommitsInReverseOrderLazy = new( - () => [.. this.incrementStrategyFinder.GetMergedCommits(item, 0, Context.Configuration.Ignore).Reverse()] - ); - childConfiguration = configuration; - childBranchName = iteration.BranchName; - } + if (childConfiguration.IsMainBranch == true) + { + if (configuration.IsMainBranch == true) throw new NotImplementedException(); - var childIteration = CreateIteration( - branchName: childBranchName, - configuration: childConfiguration, - parentIteration: iteration, - parentCommit: commit + mergedCommitsInReverseOrderLazy = new( + () => [.. this.incrementStrategyFinder.GetMergedCommits(item, 0, Context.Configuration.Ignore).Reverse()] ); + childConfiguration = configuration; + childBranchName = iteration.BranchName; + } - var done = IterateOverCommitsRecursive( - commitsInReverseOrder: mergedCommitsInReverseOrderLazy.Value, - iteration: childIteration, - targetBranch: targetBranch, - targetLabel: targetLabel, - taggedSemanticVersions: taggedSemanticVersions, - traversedCommits: traversedCommits); + var childIteration = CreateIteration( + branchName: childBranchName, + configuration: childConfiguration, + parentIteration: iteration, + parentCommit: commit + ); - commit.AddChildIteration(childIteration); - if (done) return true; - } + var done = IterateOverCommitsRecursive( + commitsInReverseOrder: mergedCommitsInReverseOrderLazy.Value, + iteration: childIteration, + targetBranch: targetBranch, + targetLabel: targetLabel, + taggedSemanticVersions: taggedSemanticVersions, + traversedCommits: traversedCommits); + + commit.AddChildIteration(childIteration); + if (done) return true; traversedCommits.AddRange(mergedCommitsInReverseOrderLazy.Value); } From a8e785eb6afb43bd38b8f216687196c18d17feeb Mon Sep 17 00:00:00 2001 From: Hardy Hobeck <56404113+HHobeck@users.noreply.github.com> Date: Fri, 19 Dec 2025 19:11:46 +0100 Subject: [PATCH 083/358] Update src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Asbjørn Ulsberg --- .../VersionCalculation/NextVersionCalculatorTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs index f586368f69..00d85d5c11 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs @@ -120,7 +120,7 @@ public void MergeIntoMainline() } [Test] - public void MergeSelfeIntoMainline() + public void MergeSelfIntoMainline() { var configuration = TrunkBasedConfigurationBuilder.New.Build(); From 71dda90600a7c47377c5cc4767081351833aa1e2 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 11 Jan 2026 22:32:31 +0100 Subject: [PATCH 084/358] enhance analyzer management Introduces flags to conditionally disable analyzers for specific project types and globally. Removes an obsolete property from MSBuild test projects. --- src/Directory.Build.props | 10 +++++++--- .../Tasks/GenerateGitVersionInformationTest.cs | 1 - .../Tasks/UpdateAssemblyInfoTaskTest.cs | 1 - 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 504f1ea51b..7c34e46a90 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -33,15 +33,19 @@ true false - false true + + false + false + true + true true - + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -51,7 +55,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/GitVersion.MsBuild.Tests/Tasks/GenerateGitVersionInformationTest.cs b/src/GitVersion.MsBuild.Tests/Tasks/GenerateGitVersionInformationTest.cs index 5119afdb0f..7d22a25af2 100644 --- a/src/GitVersion.MsBuild.Tests/Tasks/GenerateGitVersionInformationTest.cs +++ b/src/GitVersion.MsBuild.Tests/Tasks/GenerateGitVersionInformationTest.cs @@ -345,7 +345,6 @@ private static ProjectCreator AddGenerateGitVersionInformationTask(ProjectCreato { var assemblyFileLocation = typeof(GitVersionTaskBase).Assembly.Location; return project.UsingTaskAssemblyFile(taskName, assemblyFileLocation) - .Property("ManagePackageVersionsCentrally", "false") .Property("GenerateAssemblyInfo", "false") .Property("Language", language) .Target(targetToRun, beforeTargets: "CoreCompile;GetAssemblyVersion;GenerateNuspec") diff --git a/src/GitVersion.MsBuild.Tests/Tasks/UpdateAssemblyInfoTaskTest.cs b/src/GitVersion.MsBuild.Tests/Tasks/UpdateAssemblyInfoTaskTest.cs index dd8c9f7ca7..54f8765d3b 100644 --- a/src/GitVersion.MsBuild.Tests/Tasks/UpdateAssemblyInfoTaskTest.cs +++ b/src/GitVersion.MsBuild.Tests/Tasks/UpdateAssemblyInfoTaskTest.cs @@ -192,7 +192,6 @@ private static void AddUpdateAssemblyInfoTask(ProjectCreator project, string tar { var assemblyFileLocation = typeof(GitVersionTaskBase).Assembly.Location; project.UsingTaskAssemblyFile(taskName, assemblyFileLocation) - .Property("ManagePackageVersionsCentrally", "false") .Property("GenerateAssemblyInfo", "false") .Property("Language", language) .Target(targetToRun, beforeTargets: "CoreCompile;GetAssemblyVersion;GenerateNuspec") From ddfa31fd15582724923dbce8ec6929857143f48e Mon Sep 17 00:00:00 2001 From: Hardy Hobeck Date: Tue, 6 Jan 2026 15:15:01 +0100 Subject: [PATCH 085/358] fix: tagged version from the main and release branch should be considered --- .../IntegrationTests/DevelopScenarios.cs | 23 +++++++++++++++++++ .../Core/TaggedSemanticVersionService.cs | 4 ++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs index c1bf4b9a42..72df5e2f2a 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs @@ -554,4 +554,27 @@ public void PreventDecrementationOfVersionsOnTheMainBranch() // ✅ succeeds as expected fixture.AssertFullSemver("1.0.0", configurationBuilder.Build()); } + + /// + /// "track-merge-target: false" reads tag from other branch #4795 + /// (see https://github.com/GitTools/GitVersion/issues/4795) + /// + [Test] + public void TaggedVersionFromTheMainBranchShouldBeConsideredEvenIfItIsNewer() + { + using var fixture = new EmptyRepositoryFixture("main"); + + var configurationBuilder = GitFlowConfigurationBuilder.New; + + fixture.MakeATaggedCommit("1.1.1"); + fixture.BranchTo("develop"); + fixture.MakeACommit(); + fixture.MergeNoFF("main"); + fixture.ApplyTag("9.9.9"); + fixture.Checkout("develop"); + fixture.MakeACommit(); + + // ✅ succeeds as expected + fixture.AssertFullSemver("9.10.0-alpha.1", configurationBuilder.Build()); + } } diff --git a/src/GitVersion.Core/Core/TaggedSemanticVersionService.cs b/src/GitVersion.Core/Core/TaggedSemanticVersionService.cs index 37a65a1930..2c4f966e6e 100644 --- a/src/GitVersion.Core/Core/TaggedSemanticVersionService.cs +++ b/src/GitVersion.Core/Core/TaggedSemanticVersionService.cs @@ -55,7 +55,7 @@ IEnumerable> GetElements() { yield return GetTaggedSemanticVersionsOfMainBranchesInternal( configuration: configuration, - notOlderThan: notOlderThan, + notOlderThan: null, label: label, excludeBranches: branch ); @@ -65,7 +65,7 @@ IEnumerable> GetElements() { yield return GetTaggedSemanticVersionsOfReleaseBranchesInternal( configuration: configuration, - notOlderThan: notOlderThan, + notOlderThan: null, label: label, excludeBranches: branch ); From 2252557104def3cf6636f389b4fe0c5f0e78ecef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Jan 2026 16:20:47 +0000 Subject: [PATCH 086/358] (deps): Bump the microsoft group with 1 update Bumps Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing from 1.1.2 to 1.1.3 --- updated-dependencies: - dependency-name: Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing dependency-version: 1.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- .../GitVersion.Cli.Generator.Tests/Extensions.cs | 14 -------------- 2 files changed, 1 insertion(+), 15 deletions(-) delete mode 100644 new-cli/GitVersion.Cli.Generator.Tests/Extensions.cs diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index c2bf08a18f..23d92a7ba7 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -7,7 +7,7 @@ - + diff --git a/new-cli/GitVersion.Cli.Generator.Tests/Extensions.cs b/new-cli/GitVersion.Cli.Generator.Tests/Extensions.cs deleted file mode 100644 index 9f1c837ecf..0000000000 --- a/new-cli/GitVersion.Cli.Generator.Tests/Extensions.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Microsoft.CodeAnalysis.Testing; - -namespace GitVersion.Cli.Generator.Tests; - -public static class Extensions -{ - private static readonly Lazy LazyNet100 = new(() => - new("net10.0", new PackageIdentity("Microsoft.NETCore.App.Ref", "10.0.0"), Path.Combine("ref", "net10.0"))); - - extension(ReferenceAssemblies.Net) - { - public static ReferenceAssemblies Net100 => LazyNet100.Value; - } -} From 576d51defebbb8c94c1b8cdfd9a5e8b06c3b8bcc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Jan 2026 16:50:33 +0000 Subject: [PATCH 087/358] (deps): Bump JunitXml.TestLogger from 7.1.0 to 8.0.0 --- updated-dependencies: - dependency-name: JunitXml.TestLogger dependency-version: 8.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index d51be906a4..a37d9932ff 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -22,7 +22,7 @@ - + From b3c6a61c7390b07a5696557acf2acc303a3138c4 Mon Sep 17 00:00:00 2001 From: Artur Date: Tue, 13 Jan 2026 23:23:06 +0100 Subject: [PATCH 088/358] do not install docker buildx as it's already preinstalled --- .github/actions/docker-setup/action.yml | 6 ---- build/CI.slnx | 45 ------------------------- 2 files changed, 51 deletions(-) diff --git a/.github/actions/docker-setup/action.yml b/.github/actions/docker-setup/action.yml index 7b75cebdfd..d9a8e2d7b0 100644 --- a/.github/actions/docker-setup/action.yml +++ b/.github/actions/docker-setup/action.yml @@ -8,9 +8,3 @@ runs: uses: docker/setup-docker-action@v4 with: daemon-config: '{ "features": { "containerd-snapshotter": true } }' - - name: Setup Docker Buildx - uses: docker/setup-buildx-action@v3 - with: - version: 'latest' - driver-opts: 'image=moby/buildkit:buildx-stable-1' - install: true diff --git a/build/CI.slnx b/build/CI.slnx index 3e1f7caf72..dc657f4ee8 100644 --- a/build/CI.slnx +++ b/build/CI.slnx @@ -1,23 +1,4 @@ - - - - - - - - - - - - - - - - - - - @@ -34,32 +15,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - From 44fe0c126c446943cf98974495363c21f625150d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Jan 2026 12:07:18 +0000 Subject: [PATCH 089/358] (sdk): Bump dotnet-sdk from 10.0.101 to 10.0.102 Bumps [dotnet-sdk](https://github.com/dotnet/sdk) from 10.0.101 to 10.0.102. - [Release notes](https://github.com/dotnet/sdk/releases) - [Commits](https://github.com/dotnet/sdk/compare/v10.0.101...v10.0.102) --- updated-dependencies: - dependency-name: dotnet-sdk dependency-version: 10.0.102 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 87935393fc..6c462afd3d 100644 --- a/global.json +++ b/global.json @@ -5,6 +5,6 @@ "src" ], "sdk": { - "version": "10.0.101" + "version": "10.0.102" } } From 9c70ba8e6373d87774b0f15e24a16cb96edf16e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Jan 2026 12:30:44 +0000 Subject: [PATCH 090/358] (deps): Bump the microsoft group with 11 updates Bumps Microsoft.Extensions.Configuration.CommandLine from 10.0.1 to 10.0.2 Bumps Microsoft.Extensions.DependencyInjection from 10.0.1 to 10.0.2 Bumps Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.1 to 10.0.2 Bumps Microsoft.Extensions.FileSystemGlobbing from 10.0.1 to 10.0.2 Bumps Microsoft.Extensions.Hosting from 10.0.1 to 10.0.2 Bumps Microsoft.Extensions.Logging.Abstractions from 10.0.1 to 10.0.2 Bumps Microsoft.Extensions.Options from 10.0.1 to 10.0.2 Bumps System.Collections.Immutable from 10.0.1 to 10.0.2 Bumps System.CommandLine from 2.0.1 to 2.0.2 Bumps System.Reflection.Metadata from 10.0.1 to 10.0.2 Bumps System.Text.Json from 10.0.1 to 10.0.2 --- updated-dependencies: - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Logging.Abstractions dependency-version: 10.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.CommandLine dependency-version: 2.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Configuration.CommandLine dependency-version: 10.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection dependency-version: 10.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.FileSystemGlobbing dependency-version: 10.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Hosting dependency-version: 10.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Options dependency-version: 10.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Collections.Immutable dependency-version: 10.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Reflection.Metadata dependency-version: 10.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 8 ++++---- new-cli/GitVersion.Core/GitVersion.Core.csproj | 1 + src/Directory.Packages.props | 18 +++++++++--------- .../GitVersion.Testing.csproj | 1 + 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 23d92a7ba7..50e522a504 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -12,8 +12,8 @@ - - + + @@ -30,8 +30,8 @@ - + - + \ No newline at end of file diff --git a/new-cli/GitVersion.Core/GitVersion.Core.csproj b/new-cli/GitVersion.Core/GitVersion.Core.csproj index 47fe040631..d715674b84 100644 --- a/new-cli/GitVersion.Core/GitVersion.Core.csproj +++ b/new-cli/GitVersion.Core/GitVersion.Core.csproj @@ -11,6 +11,7 @@ + Infrastructure\Environment.cs diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index a37d9932ff..c98dae5605 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -13,8 +13,8 @@ - - + + @@ -27,10 +27,10 @@ - - - - + + + + @@ -38,13 +38,13 @@ - + - + - + diff --git a/src/GitVersion.Testing/GitVersion.Testing.csproj b/src/GitVersion.Testing/GitVersion.Testing.csproj index 08c0eba912..99bef60f1d 100644 --- a/src/GitVersion.Testing/GitVersion.Testing.csproj +++ b/src/GitVersion.Testing/GitVersion.Testing.csproj @@ -17,6 +17,7 @@ + From 66f3c8543f3430fd8ba0da418164d1608f8b1e02 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sat, 17 Jan 2026 23:07:24 +0100 Subject: [PATCH 091/358] build(msbuild): Standardize test project configurations Applies consistent build properties and package references to unit test and '.Testing' projects. Disables API analyzers for '.Testing' projects to streamline testing workflows. --- src/Directory.Build.props | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 7c34e46a90..31dfeabb94 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -33,12 +33,22 @@ true false - true + true false false true true + true + + + + Exe + false + + full + false + true @@ -61,11 +71,9 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + - - @@ -81,13 +89,13 @@ - + - + From 77546b5166ac03e4d13d202b34751846fafb4454 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 13:27:10 +0000 Subject: [PATCH 092/358] (deps): Bump NUnit3TestAdapter from 5.2.0 to 6.1.0 --- updated-dependencies: - dependency-name: NUnit3TestAdapter dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- src/Directory.Packages.props | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 50e522a504..724c9c9c49 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -20,7 +20,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index c98dae5605..05d616ea3e 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -36,7 +36,7 @@ - + From d17699883dae9a071d7fa82e2810431a2dbadbf1 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sat, 17 Jan 2026 23:21:22 +0100 Subject: [PATCH 093/358] build(testing): Adopt Microsoft Testing Platform Enable Microsoft Testing Platform as the default test runner in `global.json`. Configure projects for platform compatibility, adjust `dotnet test` commands, and remove direct `coverlet` integration. Improve coverage file publishing and update build dependencies. --- .github/workflows/ci.yml | 1 + .github/workflows/new-cli.yml | 3 +- build/build/Tasks/Test/PublishCoverage.cs | 6 + build/build/Tasks/Test/UnitTest.cs | 18 +-- global.json | 19 +-- .../GitVersion.Cli.Generator.Tests.csproj | 12 +- src/Directory.Build.props | 7 +- src/Directory.Packages.props | 111 ++++++++++-------- .../GitVersion.Testing.csproj | 1 + 9 files changed, 93 insertions(+), 85 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0ecebfe4a8..a792e3c0b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,6 +30,7 @@ env: DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 DOTNET_NOLOGO: 1 + TESTINGPLATFORM_TELEMETRY_OPTOUT: 1 ENABLED_DIAGNOSTICS: ${{ secrets.ENABLED_DIAGNOSTICS }} diff --git a/.github/workflows/new-cli.yml b/.github/workflows/new-cli.yml index 5fd7034189..07e9fea44a 100644 --- a/.github/workflows/new-cli.yml +++ b/.github/workflows/new-cli.yml @@ -31,6 +31,7 @@ env: DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 DOTNET_NOLOGO: 1 + TESTINGPLATFORM_TELEMETRY_OPTOUT: 1 jobs: format: @@ -53,4 +54,4 @@ jobs: run: dotnet format ./new-cli --exclude ~/.nuget/packages --verify-no-changes - name: Test 'new-cli' solution - run: dotnet test ./new-cli --no-build --verbosity normal + run: dotnet test --solution ./new-cli/GitVersion.slnx --no-build --verbosity normal diff --git a/build/build/Tasks/Test/PublishCoverage.cs b/build/build/Tasks/Test/PublishCoverage.cs index 6f754c72d6..787fd15914 100644 --- a/build/build/Tasks/Test/PublishCoverage.cs +++ b/build/build/Tasks/Test/PublishCoverage.cs @@ -29,6 +29,12 @@ public override void Run(BuildContext context) throw new InvalidOperationException("Could not resolve CodeCov token."); } + if (coverageFiles.Length == 0) + { + context.Warning("No coverage files found."); + return; + } + context.Codecov(new CodecovSettings { Files = coverageFiles, diff --git a/build/build/Tasks/Test/UnitTest.cs b/build/build/Tasks/Test/UnitTest.cs index e66f91b2e9..5f3c2d7904 100644 --- a/build/build/Tasks/Test/UnitTest.cs +++ b/build/build/Tasks/Test/UnitTest.cs @@ -69,25 +69,19 @@ private static void TestProjectForTarget(BuildContext context, FilePath project, var projectName = $"{project.GetFilenameWithoutExtension()}.net{framework}"; var settings = new DotNetTestSettings { + PathType = DotNetTestPathType.Project, Framework = $"net{framework}", NoBuild = true, NoRestore = true, Configuration = context.MsBuildConfiguration, - TestAdapterPath = new(".") }; var resultsPath = context.MakeAbsolute(testResultsPath.CombineWithFilePath($"{projectName}.results.xml")); - settings.Loggers = [$"junit;LogFilePath={resultsPath}"]; + settings.WithArgumentCustomization(args => args + .Append("--report-spekt-junit") + .Append("--report-spekt-junit-filename").AppendQuoted(resultsPath.FullPath) + ); - var coverletSettings = new CoverletSettings - { - CollectCoverage = true, - CoverletOutputFormat = CoverletOutputFormat.cobertura, - CoverletOutputDirectory = testResultsPath, - CoverletOutputName = $"{projectName}.coverage.xml", - Exclude = ["[GitVersion*.Tests]*", "[GitTools.Testing]*"] - }; - - context.DotNetTest(project.FullPath, settings, coverletSettings); + context.DotNetTest(project.FullPath, settings); } } diff --git a/global.json b/global.json index 6c462afd3d..6f1a7e12fd 100644 --- a/global.json +++ b/global.json @@ -1,10 +1,13 @@ { - "projects": [ - "build", - "new-cli", - "src" - ], - "sdk": { - "version": "10.0.102" - } + "projects": [ + "build", + "new-cli", + "src" + ], + "sdk": { + "version": "10.0.102" + }, + "test": { + "runner": "Microsoft.Testing.Platform" + } } diff --git a/new-cli/GitVersion.Cli.Generator.Tests/GitVersion.Cli.Generator.Tests.csproj b/new-cli/GitVersion.Cli.Generator.Tests/GitVersion.Cli.Generator.Tests.csproj index 9478d94c71..7c28fa017a 100644 --- a/new-cli/GitVersion.Cli.Generator.Tests/GitVersion.Cli.Generator.Tests.csproj +++ b/new-cli/GitVersion.Cli.Generator.Tests/GitVersion.Cli.Generator.Tests.csproj @@ -1,19 +1,11 @@  - - true - true - - - true - Exe GitVersion.Cli.Generator.Tests false + + true diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 31dfeabb94..88971fdb4f 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -46,6 +46,9 @@ Exe false + true + true + full false true @@ -79,10 +82,6 @@ - - all - runtime; build; native; contentfiles; analyzers - all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 05d616ea3e..4fdfb962a0 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -1,51 +1,62 @@ - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/GitVersion.Testing/GitVersion.Testing.csproj b/src/GitVersion.Testing/GitVersion.Testing.csproj index 99bef60f1d..9fe563e5d3 100644 --- a/src/GitVersion.Testing/GitVersion.Testing.csproj +++ b/src/GitVersion.Testing/GitVersion.Testing.csproj @@ -1,5 +1,6 @@ + Library false true From e2bf6407412b012529f247b88b4cbe586a494b77 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 18 Jan 2026 14:11:15 +0100 Subject: [PATCH 094/358] build(test): Configure dotnet test to build and restore projects Ensures test projects are compiled and dependencies restored before execution, bypassing CI-specific build flags. --- build/build/Tasks/Test/UnitTest.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/build/build/Tasks/Test/UnitTest.cs b/build/build/Tasks/Test/UnitTest.cs index 5f3c2d7904..70ed853fba 100644 --- a/build/build/Tasks/Test/UnitTest.cs +++ b/build/build/Tasks/Test/UnitTest.cs @@ -71,10 +71,12 @@ private static void TestProjectForTarget(BuildContext context, FilePath project, { PathType = DotNetTestPathType.Project, Framework = $"net{framework}", - NoBuild = true, - NoRestore = true, + NoBuild = false, + NoRestore = false, Configuration = context.MsBuildConfiguration, + MSBuildSettings = new() }; + settings.MSBuildSettings.SetContinuousIntegrationBuild(false); var resultsPath = context.MakeAbsolute(testResultsPath.CombineWithFilePath($"{projectName}.results.xml")); settings.WithArgumentCustomization(args => args From 8541086269cf596c3f831c11512c053448baba06 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 28 Jan 2026 13:18:24 +0100 Subject: [PATCH 095/358] refactor(build): Use nameof for enum string conversion Improve build task robustness and ensure consistent file formatting. --- build/build/Tasks/Package/PackagePrepare.cs | 2 +- src/Directory.Packages.props | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/build/Tasks/Package/PackagePrepare.cs b/build/build/Tasks/Package/PackagePrepare.cs index 096384779f..0f32b29f08 100644 --- a/build/build/Tasks/Package/PackagePrepare.cs +++ b/build/build/Tasks/Package/PackagePrepare.cs @@ -12,7 +12,7 @@ public override void Run(BuildContext context) { PackPrepareNative(context); - var sourceDir = Paths.Native.Combine(PlatformFamily.Windows.ToString()).Combine("win-x64"); + var sourceDir = Paths.Native.Combine(nameof(PlatformFamily.Windows)).Combine("win-x64"); var sourceFiles = context.GetFiles(sourceDir + "/*.*"); var portableDir = Paths.ArtifactsBinPortable.Combine("tools"); diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 4fdfb962a0..3116cfc049 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -59,4 +59,4 @@ - + \ No newline at end of file From c8d6f70939df8251e3ac12ddf162010abd89513a Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 28 Jan 2026 13:53:17 +0100 Subject: [PATCH 096/358] docs(copilot): Add AI agent instructions Provide repository-specific context, workflows, and conventions for AI coding assistants to improve productivity. --- .github/copilot-instructions.md | 84 ++++++++++++++++++++++++++ .vscode/settings.json | 103 ++++++++++++++++++++++++++++++++ 2 files changed, 187 insertions(+) create mode 100644 .github/copilot-instructions.md create mode 100644 .vscode/settings.json diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000000..f7c5bb1724 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,84 @@ + +# GitVersion — Copilot agent instructions + +Purpose: give an AI coding agent the minimal, repo-specific knowledge needed to be productive. + +- **Big picture**: This is a multi-project .NET repository. Primary source code lives under `src/` (many projects: `GitVersion.App`, `GitVersion.Core`, `GitVersion.Configuration`, build-agent adapters, and `*Tests` projects). CLI examples and docs live under `docs/`. + +- **Key files**: + - `README.md` — project overview and links to docs. See [README.md](README.md#L1). + - `global.json` — SDK version and solution roots (`build`, `new-cli`, `src`). See [global.json](global.json#L1). + - `build.ps1` — primary build entry. Prefer using the `dotnet` CLI to build and test projects under `src/`. Build stages exist under `build/` if you need them, but day-to-day work should target the `src` solution or individual projects. See [build.ps1](build.ps1#L1). + - `src/Directory.Packages.props` — central package versioning (important when adding/upgrading NuGet deps). See [src/Directory.Packages.props](src/Directory.Packages.props#L1). + - `docs/` contain CLI examples and I/O patterns (JSON on stdout, environment outputs). See [docs](docs#L1). + - `src/GitVersion.Configuration/ConfigurationFileLocator.cs` — shows how config files are located and supported names (`GitVersion.yml`, `.GitVersion.yml`, `.yaml` variants). + +- **Architecture summary (short)**: + - `src/` contains modular .NET projects: core version calculation, configuration, output generators, and build-agent integrations. + +- **Developer workflows & concrete commands**: + - Build & test (use `dotnet` directly against the solution/projects in `src`): + - Build the main solution: + + ```bash + # Build the entire solution + dotnet build ./src/GitVersion.slnx + + # Or build a single project + dotnet build --project ./src/GitVersion.Core/GitVersion.Core.csproj + ``` + + - Run tests for the repository: + + ```bash + # Run tests for the entire solution (pass the solution file) + dotnet test ./src/GitVersion.slnx + + # Or run tests for a single project using --project + dotnet test --project ./src/GitVersion.Core/GitVersion.Core.csproj + ``` + - Run tests (solution under `src`): + - `dotnet test ./src/GitVersion.slnx` or `dotnet test --project ` + - Run the CLI locally (build & run project): + - `dotnet run --project src/GitVersion.App` + - Refer to `docs/` for examples and I/O patterns. + + - Formatting: + - Use `dotnet format` to keep code style consistent across the repo. Example commands: + + ```bash + # restore any local tools (if configured) + dotnet tool restore + + # format the solution in-place + dotnet format ./src/GitVersion.slnx + + # CI-friendly check (exit non-zero when formatting needed) + dotnet format --verify-no-changes ./src/GitVersion.slnx + ``` + +- **Conventions & patterns to follow**: + - SDK/TFM: repo uses .NET 10 in `global.json` and many projects target `net10.0`. Respect `Directory.Packages.props` when adding dependencies. + - Centralized package versions: update `src/Directory.Packages.props` rather than individual csproj package versions. + - NuGet package management: always use the `dotnet` CLI for adding/updating packages (for example `dotnet add package --version `), and update central versions in `src/Directory.Packages.props` when using centrally-managed versions. Do NOT perform repository-wide file-replace edits to bump package versions; avoid manually editing scattered csproj package lines — prefer `dotnet` commands and editing `src/Directory.Packages.props`. + - Config lookup: the code supports `GitVersion.yml`, `GitVersion.yaml` and dotted variants; use these names or pass explicit `--configfile`. + +- **Integration points**: + - Build agents: see `src/GitVersion.BuildAgents/Agents/*` for platform-specific behavior. Example: GitHub Actions writes `GitVersion_`-prefixed variables to `$GITHUB_ENV` (see [src/GitVersion.BuildAgents/Agents/GitHubActions.cs](src/GitVersion.BuildAgents/Agents/GitHubActions.cs#L1)). + - Many build-agent adapters write environment variables with a `GitVersion_` prefix — keep that prefix when reading/writing outputs. + +- **What to look for when changing behavior**: + - If you change CLI output shape: update `docs/` examples and adjust build-agent adapters that parse JSON or environment variables. + - If you add dependencies: update `src/Directory.Packages.props` and validate with the `dotnet` CLI (example below). + +- **Quick pointers for the agent**: + - Prefer editing/adding small focused changes under `src/` and run `dotnet test` on the affected test project(s). + - Use the `dotnet` CLI to validate packaging and cross-project integration, for example: + + ```bash + dotnet build ./src/GitVersion.slnx + dotnet test ./src/GitVersion.slnx + dotnet format --verify-no-changes ./src/GitVersion.slnx + ``` + +If anything here is unclear or you'd like additional examples (e.g., how build agents consume outputs, or a walkthrough to run a specific test), tell me which area to expand. diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..fd8406f72f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,103 @@ +{ + "chat.tools.terminal.autoApprove": { + "dotnet build": true, + "dotnet format": true, + "dotnet test": true, + "dotnet run": true, + "cd": true, + "echo": true, + "ls": true, + "pwd": true, + "cat": true, + "head": true, + "tail": true, + "findstr": true, + "wc": true, + "tr": true, + "cut": true, + "cmp": true, + "which": true, + "basename": true, + "dirname": true, + "realpath": true, + "readlink": true, + "stat": true, + "file": true, + "du": true, + "df": true, + "sleep": true, + "nl": true, + "grep": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+status\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+log\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+show\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+diff\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+ls-files\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+grep\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+branch\\b/": true, + "/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+branch\\b.*-(d|D|m|M|-delete|-force)\\b/": false, + "Get-ChildItem": true, + "Get-Content": true, + "Get-Date": true, + "Get-Random": true, + "Get-Location": true, + "Write-Host": true, + "Write-Output": true, + "Out-String": true, + "Split-Path": true, + "Join-Path": true, + "Start-Sleep": true, + "Where-Object": true, + "/^Select-[a-z0-9]/i": true, + "/^Measure-[a-z0-9]/i": true, + "/^Compare-[a-z0-9]/i": true, + "/^Format-[a-z0-9]/i": true, + "/^Sort-[a-z0-9]/i": true, + "column": true, + "/^column\\b.*-c\\s+[0-9]{4,}/": false, + "date": true, + "/^date\\b.*(-s|--set)\\b/": false, + "find": true, + "/^find\\b.*-(delete|exec|execdir|fprint|fprintf|fls|ok|okdir)\\b/": false, + "rg": true, + "/^rg\\b.*(--pre|--hostname-bin)\\b/": false, + "sed": true, + "/^sed\\b.*(-[a-zA-Z]*(e|i|I|f)[a-zA-Z]*|--expression|--file|--in-place)\\b/": false, + "/^sed\\b.*(/e|/w|;W)/": false, + "sort": true, + "/^sort\\b.*-(o|S)\\b/": false, + "tree": true, + "/^tree\\b.*-o\\b/": false, + "rm": false, + "rmdir": false, + "del": false, + "Remove-Item": false, + "ri": false, + "rd": false, + "erase": false, + "dd": false, + "kill": false, + "ps": false, + "top": false, + "Stop-Process": false, + "spps": false, + "taskkill": false, + "taskkill.exe": false, + "curl": false, + "wget": false, + "Invoke-RestMethod": false, + "Invoke-WebRequest": false, + "irm": false, + "iwr": false, + "chmod": false, + "chown": false, + "Set-ItemProperty": false, + "sp": false, + "Set-Acl": false, + "jq": false, + "xargs": false, + "eval": false, + "Invoke-Expression": false, + "iex": false + } +} From 60cb8bda68acef1e7edda5d7096c645d0bc7e690 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 28 Jan 2026 20:40:45 +0100 Subject: [PATCH 097/358] docs(vscode-skills): Add .NET dev and NuGet manager skills Provides detailed guidance on repository-specific .NET development practices and establishes strict procedures for NuGet package management using the dotnet CLI. --- .gitignore | 6 - .vscode/skills/dotnet-dev/SKILL.md | 247 ++++++++++++++++++++++++++ .vscode/skills/nuget-manager/SKILL.md | 68 +++++++ 3 files changed, 315 insertions(+), 6 deletions(-) create mode 100644 .vscode/skills/dotnet-dev/SKILL.md create mode 100644 .vscode/skills/nuget-manager/SKILL.md diff --git a/.gitignore b/.gitignore index dfc424aaaa..af6fb0a064 100644 --- a/.gitignore +++ b/.gitignore @@ -93,12 +93,6 @@ Packages/ .idea -#################### -# Visual Studio Code -#################### - -.vscode - #################### # Cake #################### diff --git a/.vscode/skills/dotnet-dev/SKILL.md b/.vscode/skills/dotnet-dev/SKILL.md new file mode 100644 index 0000000000..feb65ac596 --- /dev/null +++ b/.vscode/skills/dotnet-dev/SKILL.md @@ -0,0 +1,247 @@ +--- +name: dotnet-dev +description: 'Expert guidance for .NET development in this repository. Use this skill for building, testing, debugging, and understanding project structure, coding conventions, dependency injection patterns, and testing practices.' +--- + +# .NET Development Skills + +Expert guidance for .NET development in this repository. + +## Build & Test Commands + +```bash +# Build the solution +dotnet build ./src/GitVersion.slnx + +# Build a single project +dotnet build --project ./src/GitVersion.Core/GitVersion.Core.csproj + +# Run all tests +dotnet test --solution ./src/GitVersion.slnx + +# Run tests for a specific project +dotnet test --project ./src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj + +# Run tests with specific framework +dotnet test --project ./src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj --framework net10.0 + +# Run specific test by filter +dotnet test --project ./src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj --filter "FullyQualifiedName~TestClassName" + +# Format code +dotnet format ./src/GitVersion.slnx + +# Verify formatting (CI-friendly) +dotnet format --verify-no-changes ./src/GitVersion.slnx +``` + +## Package Management + +This repository uses **Central Package Management** via `Directory.Packages.props`. + +### Adding/Updating Packages + +```bash +# Add a package (version managed centrally) +dotnet add ./src/ProjectName/ProjectName.csproj package PackageName + +# Update central package version in src/Directory.Packages.props +``` + +**Important**: Always update versions in `src/Directory.Packages.props`, not in individual `.csproj` files. + +### Directory.Packages.props Structure + +```xml + + + true + + + + + +``` + +## Project Structure + +- `src/` - Main solution with production code and tests +- `new-cli/` - New CLI implementation (separate solution) +- `build/` - Build automation (Cake-based) +- `docs/` - Documentation + +### Key Projects + +| Project | Purpose | +| -------------------------- | ------------------------------------- | +| `GitVersion.Core` | Core version calculation logic | +| `GitVersion.App` | CLI application | +| `GitVersion.Configuration` | Configuration file handling | +| `GitVersion.Output` | Output formatters (JSON, BuildServer) | +| `GitVersion.BuildAgents` | CI/CD platform integrations | +| `GitVersion.MsBuild` | MSBuild task integration | +| `GitVersion.LibGit2Sharp` | Git repository abstraction | + +## Coding Conventions + +### Primary Constructors + +Prefer primary constructors with readonly field assignments: + +```csharp +internal class BuildAgentResolver(IEnumerable buildAgents, ILogger logger) : IBuildAgentResolver +{ + private readonly IEnumerable buildAgents = buildAgents.NotNull(); + private readonly ILogger logger = logger.NotNull(); + + public IBuildAgent? Resolve() + { + // Use this.buildAgents and this.logger + } +} +``` + +### Dependency Injection + +Use constructor injection with `ILogger` for logging: + +```csharp +public class MyService +{ + private readonly ILogger logger; + + public MyService(ILogger logger) + { + this.logger = logger; + } +} +``` + +### Logging + +Use Microsoft.Extensions.Logging with Serilog: + +```csharp +// Information level +this.logger.LogInformation("Processing {BranchName}", branch.Name); + +// Warning level +this.logger.LogWarning("Configuration not found, using defaults"); + +// Error level +this.logger.LogError(ex, "Failed to calculate version"); + +// Debug level (verbose) +this.logger.LogDebug("Cache hit for {CacheKey}", key); +``` + +### Nullable Reference Types + +All projects use nullable reference types. Handle nullability explicitly: + +```csharp +public string? OptionalProperty { get; set; } + +public string RequiredProperty { get; set; } = string.Empty; +``` + +### File-Scoped Namespaces + +Use file-scoped namespaces: + +```csharp +namespace GitVersion.Core; + +public class MyClass +{ + // ... +} +``` + +## Testing + +### Test Project Naming + +- Test projects mirror source projects: `GitVersion.Core` → `GitVersion.Core.Tests` + +### Test Frameworks + +- **NUnit** - Primary test framework +- **NSubstitute** - Mocking framework +- **Shouldly** - Assertion library + +### Test Patterns + +```csharp +[TestFixture] +public class MyServiceTests +{ + [Test] + public void MethodName_Scenario_ExpectedResult() + { + // Arrange + var service = new MyService(); + + // Act + var result = service.DoSomething(); + + // Assert + result.ShouldBe(expected); + } + + [TestCase("input1", "expected1")] + [TestCase("input2", "expected2")] + public void MethodName_WithParameters_ReturnsExpected(string input, string expected) + { + var result = service.Process(input); + result.ShouldBe(expected); + } +} +``` + +## Configuration Files + +### Supported Names + +- `GitVersion.yml` +- `GitVersion.yaml` +- `.GitVersion.yml` +- `.GitVersion.yaml` + +### Schema Location + +JSON schemas are in `schemas/` directory for validation. + +## Build Agents + +Build agent integrations write environment variables with `GitVersion_` prefix: + +```csharp +// Example: GitHub Actions +Environment.SetEnvironmentVariable($"GitVersion_{name}", value); +``` + +## Common Tasks + +### Running the CLI Locally + +```bash +dotnet run --project src/GitVersion.App +``` + +### Debugging Tests + +```bash +# Run with detailed output +dotnet test --project ./src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj -v detailed + +# Run specific test +dotnet test --filter "FullyQualifiedName=GitVersion.Core.Tests.MyTest" +``` + +### Checking for Errors + +```bash +# Build with warnings as errors +dotnet build ./src/GitVersion.slnx -warnaserror +``` diff --git a/.vscode/skills/nuget-manager/SKILL.md b/.vscode/skills/nuget-manager/SKILL.md new file mode 100644 index 0000000000..d643749c8c --- /dev/null +++ b/.vscode/skills/nuget-manager/SKILL.md @@ -0,0 +1,68 @@ +--- +name: nuget-manager +description: 'Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions.' +--- + +# NuGet Manager + +## Overview + +This skill ensures consistent and safe management of NuGet packages across .NET projects. It prioritizes using the `dotnet` CLI to maintain project integrity and enforces a strict verification and restoration workflow for version updates. + +## Prerequisites + +- .NET SDK installed (typically .NET 10.0 SDK or later, or a version compatible with the target solution). +- `dotnet` CLI available on your `PATH`. +- `jq` (JSON processor) OR PowerShell (for version verification using `dotnet package search`). + +## Core Rules + +1. **NEVER** directly edit `.csproj`, `.props`, or `Directory.Packages.props` files to **add** or **remove** packages. Always use `dotnet add package` and `dotnet remove package` commands. +2. **DIRECT EDITING** is ONLY permitted for **changing versions** of existing packages. +3. **VERSION UPDATES** must follow the mandatory workflow: + - Verify the target version exists on NuGet. + - Determine if versions are managed per-project (`.csproj`) or centrally (`Directory.Packages.props`). + - Update the version string in the appropriate file. + - Immediately run `dotnet restore` to verify compatibility. + +## Workflows + +### Adding a Package +Use `dotnet add [] package [--version ]`. +Example: `dotnet add src/MyProject/MyProject.csproj package Newtonsoft.Json` + +### Removing a Package +Use `dotnet remove [] package `. +Example: `dotnet remove src/MyProject/MyProject.csproj package Newtonsoft.Json` + +### Updating Package Versions +When updating a version, follow these steps: + +1. **Verify Version Existence**: + Check if the version exists using the `dotnet package search` command with exact match and JSON formatting. + Using `jq`: + `dotnet package search --exact-match --format json | jq -e '.searchResult[].packages[] | select(.version == "")'` + Using PowerShell: + `(dotnet package search --exact-match --format json | ConvertFrom-Json).searchResult.packages | Where-Object { $_.version -eq "" }` + +2. **Determine Version Management**: + - Search for `Directory.Packages.props` in the solution root. If present, versions should be managed there via ``. + - If absent, check individual `.csproj` files for ``. + +3. **Apply Changes**: + Modify the identified file with the new version string. + +4. **Verify Stability**: + Run `dotnet restore` on the project or solution. If errors occur, revert the change and investigate. + +## Examples + +### User: "Add Serilog to the WebApi project" +**Action**: Execute `dotnet add src/WebApi/WebApi.csproj package Serilog`. + +### User: "Update Newtonsoft.Json to 13.0.3 in the whole solution" +**Action**: +1. Verify 13.0.3 exists: `dotnet package search Newtonsoft.Json --exact-match --format json` (and parse output to confirm "13.0.3" is present). +2. Find where it's defined (e.g., `Directory.Packages.props`). +3. Edit the file to update the version. +4. Run `dotnet restore`. From 4249859517726f20de3e3d02d41a5e40168a3671 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 28 Jan 2026 20:40:59 +0100 Subject: [PATCH 098/358] chore(devcontainer): Add jq and yq tools Enhance JSON/YAML processing capabilities for the development environment. Includes minor formatting adjustments. --- .devcontainer/devcontainer.json | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 69b116d50b..6dad23a0ee 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -14,7 +14,7 @@ "userGid": "1000", "upgradePackages": "true" }, - "ghcr.io/devcontainers/features/git:1": { + "ghcr.io/devcontainers/features/git:1": { "version": "os-provided", "ppa": "false" }, @@ -26,13 +26,20 @@ }, "ghcr.io/devcontainers/features/docker-in-docker:2": { "version": "latest" + }, + "ghcr.io/eitsupi/devcontainer-features/jq-likes:2.1.1": { + "jqVersion": "latest", + "yqVersion": "latest", + "xqVersion": "none" } }, "customizations": { "vscode": { "settings": { "editor.fontFamily": "'Cascadia Code', Consolas, 'Courier New', monospace", - "editor.rulers": [ 90 ], + "editor.rulers": [ + 90 + ], "cSpell.words": [ "commiting", "gittools", @@ -47,9 +54,7 @@ ] } }, - "postCreateCommand": "dotnet restore src; dotnet build build", - // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. "remoteUser": "vscode" } From 90cc7d9c5d3640971e8dc2526e48a3465cfe7741 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 28 Jan 2026 20:37:17 +0100 Subject: [PATCH 099/358] refactor(build): Adjust test project dependency inclusion Removes implicit test package references for '.Testing' projects and adds Shouldly to GitVersion.Testing. --- src/Directory.Build.props | 2 +- src/GitVersion.Testing/GitVersion.Testing.csproj | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 88971fdb4f..ba0639069f 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -74,7 +74,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/GitVersion.Testing/GitVersion.Testing.csproj b/src/GitVersion.Testing/GitVersion.Testing.csproj index 9fe563e5d3..7ba1a59980 100644 --- a/src/GitVersion.Testing/GitVersion.Testing.csproj +++ b/src/GitVersion.Testing/GitVersion.Testing.csproj @@ -6,6 +6,7 @@ + From bb4b942ecea250098820892f9f69346f20fac5de Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 28 Jan 2026 23:38:59 +0100 Subject: [PATCH 100/358] refactor(usings): Centralize common using directives Moves frequently used System and Microsoft.Extensions namespaces to global usings in Directory.Build.props and project files, reducing boilerplate in source files. --- src/Directory.Build.props | 12 +++++++++++- .../ArgumentParserOnBuildServerTests.cs | 1 - src/GitVersion.App.Tests/ArgumentParserTests.cs | 1 - src/GitVersion.App.Tests/HelpWriterTests.cs | 1 - src/GitVersion.App.Tests/Helpers/ProgramFixture.cs | 1 - src/GitVersion.App.Tests/VersionWriterTests.cs | 1 - src/GitVersion.App/CliHost.cs | 3 --- .../FileSystemGlobbing/GlobbingResolver.cs | 1 - .../FileSystemGlobbing/MatcherExtensions.cs | 1 - src/GitVersion.App/GitVersion.App.csproj | 5 +++++ src/GitVersion.App/GitVersionApp.cs | 2 -- src/GitVersion.App/GitVersionAppModule.cs | 1 - src/GitVersion.App/Program.cs | 1 - .../Agents/AzurePipelinesTests.cs | 1 - .../Agents/BitBucketPipelinesTests.cs | 1 - .../Agents/BuildKiteTests.cs | 1 - .../Agents/BuildServerBaseTests.cs | 1 - .../Agents/CodeBuildTests.cs | 1 - .../Agents/ContinuaCiTests.cs | 1 - .../Agents/DroneTests.cs | 1 - .../Agents/EnvRunTests.cs | 1 - .../Agents/GitHubActionsTests.cs | 1 - .../Agents/GitLabCiTests.cs | 1 - .../Agents/JenkinsTests.cs | 1 - .../Agents/MyGetTests.cs | 1 - .../Agents/SpaceAutomationTests.cs | 1 - .../Agents/TeamCityTests.cs | 1 - .../GitVersionBuildAgentsModule.cs | 2 -- .../Configuration/ConfigurationFileLocatorTests.cs | 2 -- .../Configuration/ConfigurationProviderTests.cs | 2 -- .../ConfigurationFileLocator.cs | 1 - .../ConfigurationProvider.cs | 1 - .../GitVersionConfigurationModule.cs | 1 - .../Core/DynamicRepositoryTests.cs | 2 -- .../Core/GitVersionExecutorTests.cs | 2 -- .../Core/GitVersionToolDirectoryTests.cs | 2 -- .../Core/RepositoryStoreTests.cs | 1 - .../Extensions/GitRepositoryTestingExtensions.cs | 2 -- .../Helpers/GitVersionContextBuilder.cs | 2 -- .../Helpers/GitVersionCoreTestModule.cs | 1 - src/GitVersion.Core.Tests/Helpers/TestBase.cs | 2 -- .../IntegrationTests/OtherScenarios.cs | 1 - .../IntegrationTests/RemoteRepositoryScenarios.cs | 2 -- .../IntegrationTests/WorktreeScenarios.cs | 1 - .../VersionCalculation/JsonVersionBuilderTests.cs | 1 - .../VersionCalculation/NextVersionCalculatorTests.cs | 1 - .../ConfiguredNextVersionVersionStrategyTests.cs | 1 - .../MergeMessageBaseVersionStrategyTests.cs | 1 - .../VersionCalculation/VariableProviderTests.cs | 1 - .../VersionCalculation/VersionSourceTests.cs | 1 - .../Core/Abstractions/IGitVersionModule.cs | 1 - src/GitVersion.Core/Core/GitPreparer.cs | 1 - src/GitVersion.Core/Core/GitVersionCalculateTool.cs | 1 - src/GitVersion.Core/Core/GitVersionContextFactory.cs | 1 - .../Extensions/ServiceCollectionExtensions.cs | 2 -- src/GitVersion.Core/GitVersionCommonModule.cs | 1 - src/GitVersion.Core/GitVersionCoreModule.cs | 1 - .../Caching/GitVersionCacheKeyFactory.cs | 1 - .../Caching/GitVersionCacheProvider.cs | 1 - .../VersionCalculation/VersionCalculationModule.cs | 1 - .../VersionSearchStrategies/VersionStrategyModule.cs | 2 -- src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs | 1 - .../GitVersionLibGit2SharpModule.cs | 1 - .../InvalidFileCheckerTests.cs | 1 - src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs | 1 - src/GitVersion.MsBuild/GitVersionMsBuildModule.cs | 2 -- src/GitVersion.MsBuild/GitVersionTaskExecutor.cs | 1 - src/GitVersion.MsBuild/GitVersionTasks.cs | 2 -- .../Output/AssemblyInfoFileUpdaterTests.cs | 1 - .../Output/FormatArgumentTests.cs | 2 -- .../Output/GitVersionInfoGeneratorTests.cs | 1 - .../Output/ProjectFileUpdaterTests.cs | 1 - src/GitVersion.Output.Tests/Output/WixFileTests.cs | 1 - src/GitVersion.Output/GitVersionOutputModule.cs | 1 - src/GitVersion.Output/GitVersionOutputTool.cs | 1 - .../OutputGenerator/OutputGenerator.cs | 1 - src/GitVersion.Schema/GitVersion.Schema.csproj | 3 +++ src/GitVersion.Schema/Program.cs | 1 - 78 files changed, 19 insertions(+), 94 deletions(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index ba0639069f..7e0af5ca9c 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -97,7 +97,11 @@ - + + + + + @@ -109,6 +113,12 @@ + + + + + + diff --git a/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs b/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs index 6d8537e276..e38fec1482 100644 --- a/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs +++ b/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs @@ -2,7 +2,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.OutputVariables; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/ArgumentParserTests.cs b/src/GitVersion.App.Tests/ArgumentParserTests.cs index 911c1f0812..850ba7342b 100644 --- a/src/GitVersion.App.Tests/ArgumentParserTests.cs +++ b/src/GitVersion.App.Tests/ArgumentParserTests.cs @@ -5,7 +5,6 @@ using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/HelpWriterTests.cs b/src/GitVersion.App.Tests/HelpWriterTests.cs index f9d5f61a78..32fe2206af 100644 --- a/src/GitVersion.App.Tests/HelpWriterTests.cs +++ b/src/GitVersion.App.Tests/HelpWriterTests.cs @@ -1,6 +1,5 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs b/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs index a1ed7f10cb..305a284158 100644 --- a/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs +++ b/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs @@ -1,7 +1,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Logging; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/VersionWriterTests.cs b/src/GitVersion.App.Tests/VersionWriterTests.cs index bea307439b..4971b05269 100644 --- a/src/GitVersion.App.Tests/VersionWriterTests.cs +++ b/src/GitVersion.App.Tests/VersionWriterTests.cs @@ -2,7 +2,6 @@ using GitVersion.Extensions; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App/CliHost.cs b/src/GitVersion.App/CliHost.cs index 357e7df742..4ad05282b5 100644 --- a/src/GitVersion.App/CliHost.cs +++ b/src/GitVersion.App/CliHost.cs @@ -2,9 +2,6 @@ using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Output; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Options; namespace GitVersion; diff --git a/src/GitVersion.App/FileSystemGlobbing/GlobbingResolver.cs b/src/GitVersion.App/FileSystemGlobbing/GlobbingResolver.cs index fa4da4eb06..7aeec0cb50 100644 --- a/src/GitVersion.App/FileSystemGlobbing/GlobbingResolver.cs +++ b/src/GitVersion.App/FileSystemGlobbing/GlobbingResolver.cs @@ -1,6 +1,5 @@ using System.IO.Abstractions; using GitVersion.Extensions; -using Microsoft.Extensions.FileSystemGlobbing; namespace GitVersion.FileSystemGlobbing; diff --git a/src/GitVersion.App/FileSystemGlobbing/MatcherExtensions.cs b/src/GitVersion.App/FileSystemGlobbing/MatcherExtensions.cs index 1d8db805f4..21f97bb5a4 100644 --- a/src/GitVersion.App/FileSystemGlobbing/MatcherExtensions.cs +++ b/src/GitVersion.App/FileSystemGlobbing/MatcherExtensions.cs @@ -1,5 +1,4 @@ using System.IO.Abstractions; -using Microsoft.Extensions.FileSystemGlobbing; namespace GitVersion.FileSystemGlobbing; diff --git a/src/GitVersion.App/GitVersion.App.csproj b/src/GitVersion.App/GitVersion.App.csproj index 00c1587488..be6ae43bb8 100644 --- a/src/GitVersion.App/GitVersion.App.csproj +++ b/src/GitVersion.App/GitVersion.App.csproj @@ -30,6 +30,11 @@ + + + + + diff --git a/src/GitVersion.App/GitVersionApp.cs b/src/GitVersion.App/GitVersionApp.cs index ae9bc0f9c4..df8cf8c3d8 100644 --- a/src/GitVersion.App/GitVersionApp.cs +++ b/src/GitVersion.App/GitVersionApp.cs @@ -1,7 +1,5 @@ using GitVersion.Extensions; using GitVersion.Logging; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Options; namespace GitVersion; diff --git a/src/GitVersion.App/GitVersionAppModule.cs b/src/GitVersion.App/GitVersionAppModule.cs index c8cb45b42e..ead7c5caeb 100644 --- a/src/GitVersion.App/GitVersionAppModule.cs +++ b/src/GitVersion.App/GitVersionAppModule.cs @@ -1,5 +1,4 @@ using GitVersion.FileSystemGlobbing; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion; diff --git a/src/GitVersion.App/Program.cs b/src/GitVersion.App/Program.cs index f82d650445..e7934aab59 100644 --- a/src/GitVersion.App/Program.cs +++ b/src/GitVersion.App/Program.cs @@ -1,5 +1,4 @@ using GitVersion; -using Microsoft.Extensions.DependencyInjection; var builder = CliHost.CreateCliHostBuilder(args); diff --git a/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs index 79c27fb26c..8b47470f1f 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs @@ -1,5 +1,4 @@ using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs index a443730955..2591d9e722 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs @@ -3,7 +3,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs index 516bf2da94..ae90b01d02 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs @@ -1,5 +1,4 @@ using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs index 44200014a9..b05250e772 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs @@ -4,7 +4,6 @@ using GitVersion.Logging; using GitVersion.OutputVariables; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs index 9924a3da9e..f62d451f41 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs @@ -3,7 +3,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs index 6ed2ff100e..dd051376c5 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs @@ -1,5 +1,4 @@ using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs index 4e65698cca..57e8e488ba 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs @@ -1,5 +1,4 @@ using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs index 86604b2737..b89d610d89 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs @@ -1,7 +1,6 @@ using System.IO.Abstractions; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs index 2e0e258a13..eaa30d0fd6 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs @@ -1,7 +1,6 @@ using System.IO.Abstractions; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs index 457955b088..9296f90a0d 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs @@ -3,7 +3,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs index 6c23d10ec2..f215cf60c6 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs @@ -3,7 +3,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs index 9894f777ef..fa89c4230c 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs @@ -1,5 +1,4 @@ using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs index c330ab2ea7..9b9bc01e66 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs @@ -1,5 +1,4 @@ using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs index d3cbca95cf..c640d2b3fa 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs @@ -1,5 +1,4 @@ using GitVersion.Core.Tests.Helpers; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Agents.Tests; diff --git a/src/GitVersion.BuildAgents/GitVersionBuildAgentsModule.cs b/src/GitVersion.BuildAgents/GitVersionBuildAgentsModule.cs index 17ba4b85b8..395e004c4f 100644 --- a/src/GitVersion.BuildAgents/GitVersionBuildAgentsModule.cs +++ b/src/GitVersion.BuildAgents/GitVersionBuildAgentsModule.cs @@ -1,5 +1,3 @@ -using Microsoft.Extensions.DependencyInjection; - namespace GitVersion.Agents; public class GitVersionBuildAgentsModule : IGitVersionModule diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs index 3035b49a8b..bd4edb762a 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs @@ -4,8 +4,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs index 9ce9311f5b..9ba695dca8 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs @@ -6,8 +6,6 @@ using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Configuration/ConfigurationFileLocator.cs b/src/GitVersion.Configuration/ConfigurationFileLocator.cs index 489c39e1f1..9d51bfb884 100644 --- a/src/GitVersion.Configuration/ConfigurationFileLocator.cs +++ b/src/GitVersion.Configuration/ConfigurationFileLocator.cs @@ -2,7 +2,6 @@ using GitVersion.Extensions; using GitVersion.Helpers; using GitVersion.Logging; -using Microsoft.Extensions.Options; namespace GitVersion.Configuration; diff --git a/src/GitVersion.Configuration/ConfigurationProvider.cs b/src/GitVersion.Configuration/ConfigurationProvider.cs index 644e1656cc..0605dc07a8 100644 --- a/src/GitVersion.Configuration/ConfigurationProvider.cs +++ b/src/GitVersion.Configuration/ConfigurationProvider.cs @@ -2,7 +2,6 @@ using GitVersion.Configuration.Workflows; using GitVersion.Extensions; using GitVersion.Logging; -using Microsoft.Extensions.Options; using YamlDotNet.Core; namespace GitVersion.Configuration; diff --git a/src/GitVersion.Configuration/GitVersionConfigurationModule.cs b/src/GitVersion.Configuration/GitVersionConfigurationModule.cs index 684b0a8b78..c2b9b44134 100644 --- a/src/GitVersion.Configuration/GitVersionConfigurationModule.cs +++ b/src/GitVersion.Configuration/GitVersionConfigurationModule.cs @@ -1,5 +1,4 @@ using GitVersion.VersionCalculation.Caching; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Configuration; diff --git a/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs b/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs index 03eb85b522..44de42672e 100644 --- a/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs +++ b/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs @@ -1,8 +1,6 @@ using System.IO.Abstractions; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs index e67f847b45..53a34bb188 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs @@ -9,8 +9,6 @@ using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation.Caching; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs index 9f2d17b57d..384db323ec 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs @@ -2,8 +2,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs b/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs index ddb91145e3..d6fdfeb0fd 100644 --- a/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs +++ b/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs @@ -2,7 +2,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Git; using GitVersion.Logging; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs b/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs index dff0409f9c..b7d09d1467 100644 --- a/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs @@ -8,8 +8,6 @@ using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs b/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs index 250d382308..b1444b2014 100644 --- a/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs +++ b/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs @@ -1,8 +1,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs b/src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs index e46989145f..1c9b3773f3 100644 --- a/src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs +++ b/src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs @@ -4,7 +4,6 @@ using GitVersion.Extensions; using GitVersion.Logging; using GitVersion.Output; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests.Helpers; diff --git a/src/GitVersion.Core.Tests/Helpers/TestBase.cs b/src/GitVersion.Core.Tests/Helpers/TestBase.cs index cd25bd8a27..e9b6d677ea 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestBase.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestBase.cs @@ -1,7 +1,5 @@ using GitVersion.Extensions; using GitVersion.Git; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace GitVersion.Core.Tests.Helpers; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs index 0c847cae1c..eb1014596d 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs @@ -7,7 +7,6 @@ using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs index f550df24c8..ac92ff6710 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs @@ -2,8 +2,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs index 10509ebca2..42aa6c89fc 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs @@ -3,7 +3,6 @@ using GitVersion.Helpers; using GitVersion.Testing.Extensions; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests.IntegrationTests; diff --git a/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs index 3db950eb62..55c1298825 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs @@ -1,7 +1,6 @@ using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs index 00d85d5c11..64422c2da3 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs @@ -2,7 +2,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests.VersionCalculation; diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs index bd06aceb05..819bcdb19c 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs @@ -2,7 +2,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests.VersionCalculation.Strategies; diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs index 2b67f9e021..48009baf1d 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs @@ -3,7 +3,6 @@ using GitVersion.Extensions; using GitVersion.Git; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests.VersionCalculation.Strategies; diff --git a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs index cc27fb1b24..a53055bdae 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs @@ -4,7 +4,6 @@ using GitVersion.Git; using GitVersion.Logging; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs index f4618e6d40..a47560d82d 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs @@ -1,7 +1,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Git; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Core/Core/Abstractions/IGitVersionModule.cs b/src/GitVersion.Core/Core/Abstractions/IGitVersionModule.cs index 0d8e217a35..2b1e7fefee 100644 --- a/src/GitVersion.Core/Core/Abstractions/IGitVersionModule.cs +++ b/src/GitVersion.Core/Core/Abstractions/IGitVersionModule.cs @@ -1,5 +1,4 @@ using GitVersion.Extensions; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion; diff --git a/src/GitVersion.Core/Core/GitPreparer.cs b/src/GitVersion.Core/Core/GitPreparer.cs index 52281942de..2258d4ef0c 100644 --- a/src/GitVersion.Core/Core/GitPreparer.cs +++ b/src/GitVersion.Core/Core/GitPreparer.cs @@ -5,7 +5,6 @@ using GitVersion.Git; using GitVersion.Helpers; using GitVersion.Logging; -using Microsoft.Extensions.Options; namespace GitVersion; diff --git a/src/GitVersion.Core/Core/GitVersionCalculateTool.cs b/src/GitVersion.Core/Core/GitVersionCalculateTool.cs index 72703484ec..88f9d70f4d 100644 --- a/src/GitVersion.Core/Core/GitVersionCalculateTool.cs +++ b/src/GitVersion.Core/Core/GitVersionCalculateTool.cs @@ -5,7 +5,6 @@ using GitVersion.OutputVariables; using GitVersion.VersionCalculation; using GitVersion.VersionCalculation.Caching; -using Microsoft.Extensions.Options; namespace GitVersion; diff --git a/src/GitVersion.Core/Core/GitVersionContextFactory.cs b/src/GitVersion.Core/Core/GitVersionContextFactory.cs index 999da28fbc..a315d33092 100644 --- a/src/GitVersion.Core/Core/GitVersionContextFactory.cs +++ b/src/GitVersion.Core/Core/GitVersionContextFactory.cs @@ -2,7 +2,6 @@ using GitVersion.Configuration; using GitVersion.Core; using GitVersion.Extensions; -using Microsoft.Extensions.Options; namespace GitVersion; diff --git a/src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs b/src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs index cc8ec37cda..12116717fe 100644 --- a/src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs +++ b/src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs @@ -1,5 +1,3 @@ -using Microsoft.Extensions.DependencyInjection; - namespace GitVersion.Extensions; public static class ServiceCollectionExtensions diff --git a/src/GitVersion.Core/GitVersionCommonModule.cs b/src/GitVersion.Core/GitVersionCommonModule.cs index 767b780e52..8f4376b33e 100644 --- a/src/GitVersion.Core/GitVersionCommonModule.cs +++ b/src/GitVersion.Core/GitVersionCommonModule.cs @@ -1,7 +1,6 @@ using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Logging; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion; diff --git a/src/GitVersion.Core/GitVersionCoreModule.cs b/src/GitVersion.Core/GitVersionCoreModule.cs index f059927193..3a51335d5e 100644 --- a/src/GitVersion.Core/GitVersionCoreModule.cs +++ b/src/GitVersion.Core/GitVersionCoreModule.cs @@ -3,7 +3,6 @@ using GitVersion.Extensions; using GitVersion.VersionCalculation; using GitVersion.VersionCalculation.Caching; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion; diff --git a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs index 368713f464..c684467ff3 100644 --- a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs +++ b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs @@ -6,7 +6,6 @@ using GitVersion.Git; using GitVersion.Helpers; using GitVersion.Logging; -using Microsoft.Extensions.Options; namespace GitVersion.VersionCalculation.Caching; diff --git a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheProvider.cs b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheProvider.cs index d80979db7a..904833a85b 100644 --- a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheProvider.cs @@ -4,7 +4,6 @@ using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.OutputVariables; -using Microsoft.Extensions.Options; namespace GitVersion.VersionCalculation.Caching; diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculationModule.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculationModule.cs index 363f39584a..31d2d0fd6f 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculationModule.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculationModule.cs @@ -1,5 +1,4 @@ using GitVersion.Extensions; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.VersionCalculation; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionStrategyModule.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionStrategyModule.cs index 23d0580365..fd1fb2143d 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionStrategyModule.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionStrategyModule.cs @@ -1,5 +1,3 @@ -using Microsoft.Extensions.DependencyInjection; - namespace GitVersion.VersionCalculation; public class VersionStrategyModule : IGitVersionModule diff --git a/src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs b/src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs index 44a58b6485..3ed170beb0 100644 --- a/src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs +++ b/src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs @@ -2,7 +2,6 @@ using GitVersion.Extensions; using GitVersion.Helpers; using LibGit2Sharp; -using Microsoft.Extensions.Options; namespace GitVersion.Git; diff --git a/src/GitVersion.LibGit2Sharp/GitVersionLibGit2SharpModule.cs b/src/GitVersion.LibGit2Sharp/GitVersionLibGit2SharpModule.cs index 317a3a3af2..9afe62f13b 100644 --- a/src/GitVersion.LibGit2Sharp/GitVersionLibGit2SharpModule.cs +++ b/src/GitVersion.LibGit2Sharp/GitVersionLibGit2SharpModule.cs @@ -1,5 +1,4 @@ using GitVersion.Git; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion; diff --git a/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs b/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs index 3607471cd0..5253ca4ed9 100644 --- a/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs +++ b/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs @@ -2,7 +2,6 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.MsBuild.Tests.Mocks; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.MsBuild.Tests; diff --git a/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs b/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs index 9281bd4ad2..233cc16ea8 100644 --- a/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs +++ b/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs @@ -8,7 +8,6 @@ using GitVersion.Testing.Extensions; using LibGit2Sharp; using Microsoft.Build.Utilities.ProjectCreation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.MsBuild.Tests.Tasks; diff --git a/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs b/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs index 0d314115ca..3cb42fe097 100644 --- a/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs +++ b/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs @@ -1,5 +1,3 @@ -using Microsoft.Extensions.DependencyInjection; - namespace GitVersion.MsBuild; public class GitVersionMsBuildModule : IGitVersionModule diff --git a/src/GitVersion.MsBuild/GitVersionTaskExecutor.cs b/src/GitVersion.MsBuild/GitVersionTaskExecutor.cs index e0e3a0052f..ac43593d01 100644 --- a/src/GitVersion.MsBuild/GitVersionTaskExecutor.cs +++ b/src/GitVersion.MsBuild/GitVersionTaskExecutor.cs @@ -4,7 +4,6 @@ using GitVersion.Helpers; using GitVersion.MsBuild.Tasks; using GitVersion.OutputVariables; -using Microsoft.Extensions.Options; namespace GitVersion.MsBuild; diff --git a/src/GitVersion.MsBuild/GitVersionTasks.cs b/src/GitVersion.MsBuild/GitVersionTasks.cs index 70cb0b5b98..003fa31f80 100644 --- a/src/GitVersion.MsBuild/GitVersionTasks.cs +++ b/src/GitVersion.MsBuild/GitVersionTasks.cs @@ -4,8 +4,6 @@ using GitVersion.Logging; using GitVersion.MsBuild.Tasks; using GitVersion.Output; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace GitVersion.MsBuild; diff --git a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs index 3b05e42d85..38f50839f0 100644 --- a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs @@ -6,7 +6,6 @@ using GitVersion.Output.AssemblyInfo; using GitVersion.OutputVariables; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs index 20c4f685c2..df42c725ab 100644 --- a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs +++ b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs @@ -3,8 +3,6 @@ using GitVersion.Output.OutputGenerator; using GitVersion.Testing.Extensions; using LibGit2Sharp; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs index f179c64469..86c05b1af1 100644 --- a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs +++ b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs @@ -4,7 +4,6 @@ using GitVersion.Helpers; using GitVersion.Output.GitVersionInfo; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs index 4f6a1fc3db..9513524dbf 100644 --- a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs @@ -7,7 +7,6 @@ using GitVersion.Output.AssemblyInfo; using GitVersion.OutputVariables; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Output.Tests/Output/WixFileTests.cs b/src/GitVersion.Output.Tests/Output/WixFileTests.cs index 1fff03bd17..a6da3a5aee 100644 --- a/src/GitVersion.Output.Tests/Output/WixFileTests.cs +++ b/src/GitVersion.Output.Tests/Output/WixFileTests.cs @@ -5,7 +5,6 @@ using GitVersion.Logging; using GitVersion.Output.WixUpdater; using GitVersion.VersionCalculation; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Core.Tests; diff --git a/src/GitVersion.Output/GitVersionOutputModule.cs b/src/GitVersion.Output/GitVersionOutputModule.cs index 3787e1b9e2..8b929dfcf4 100644 --- a/src/GitVersion.Output/GitVersionOutputModule.cs +++ b/src/GitVersion.Output/GitVersionOutputModule.cs @@ -3,7 +3,6 @@ using GitVersion.Output.OutputGenerator; using GitVersion.Output.WixUpdater; using GitVersion.OutputVariables; -using Microsoft.Extensions.DependencyInjection; namespace GitVersion.Output; diff --git a/src/GitVersion.Output/GitVersionOutputTool.cs b/src/GitVersion.Output/GitVersionOutputTool.cs index 76dac75b27..c792d00c81 100644 --- a/src/GitVersion.Output/GitVersionOutputTool.cs +++ b/src/GitVersion.Output/GitVersionOutputTool.cs @@ -4,7 +4,6 @@ using GitVersion.Output.OutputGenerator; using GitVersion.Output.WixUpdater; using GitVersion.OutputVariables; -using Microsoft.Extensions.Options; namespace GitVersion; diff --git a/src/GitVersion.Output/OutputGenerator/OutputGenerator.cs b/src/GitVersion.Output/OutputGenerator/OutputGenerator.cs index 971e165c70..e440eb549b 100644 --- a/src/GitVersion.Output/OutputGenerator/OutputGenerator.cs +++ b/src/GitVersion.Output/OutputGenerator/OutputGenerator.cs @@ -5,7 +5,6 @@ using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.OutputVariables; -using Microsoft.Extensions.Options; namespace GitVersion.Output.OutputGenerator; diff --git a/src/GitVersion.Schema/GitVersion.Schema.csproj b/src/GitVersion.Schema/GitVersion.Schema.csproj index beef892b98..f077911225 100644 --- a/src/GitVersion.Schema/GitVersion.Schema.csproj +++ b/src/GitVersion.Schema/GitVersion.Schema.csproj @@ -13,4 +13,7 @@ + + + diff --git a/src/GitVersion.Schema/Program.cs b/src/GitVersion.Schema/Program.cs index e6f7eb39a1..7b16cee361 100644 --- a/src/GitVersion.Schema/Program.cs +++ b/src/GitVersion.Schema/Program.cs @@ -3,7 +3,6 @@ using GitVersion.Schema; using Json.Schema; using Json.Schema.Generation; -using Microsoft.Extensions.Configuration; var configurationManager = new ConfigurationManager().AddCommandLine(args).Build(); var schemasDirectory = configurationManager["OutputDirectory"]!; From a5bdbaf027e215e0613ca26b26edea0b630fe909 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Thu, 29 Jan 2026 23:05:56 +0100 Subject: [PATCH 101/358] refactor(tests): align test namespaces and imports with project structure Standardize test file namespaces and imports to match the updated project directory structure. Streamlines organization across `Agents`, `Configuration`, and `Core` tests. --- .../QuotedStringHelpersTests.cs | 4 +- .../Agents/AzurePipelinesTests.cs | 3 +- .../Agents/BitBucketPipelinesTests.cs | 3 +- .../Agents/BuildKiteTests.cs | 3 +- .../Agents/BuildServerBaseTests.cs | 3 +- .../Agents/CodeBuildTests.cs | 3 +- .../Agents/ContinuaCiTests.cs | 3 +- .../Agents/DroneTests.cs | 3 +- .../Agents/EnvRunTests.cs | 3 +- .../Agents/GitHubActionsTests.cs | 3 +- .../Agents/GitLabCiTests.cs | 3 +- .../Agents/JenkinsTests.cs | 3 +- .../Agents/MyGetTests.cs | 3 +- .../Agents/SpaceAutomationTests.cs | 3 +- .../Agents/TeamCityTests.cs | 3 +- .../ConfigurationExtensionsTests.cs | 3 +- .../ConfigurationFileLocatorTests.cs | 4 +- .../ConfigurationProviderTests.cs | 5 +- .../Configuration/Extensions.cs | 2 +- .../Configuration/IgnoreConfigurationTests.cs | 3 +- .../Workflows/WorkflowsTests.cs | 2 +- .../Core/RegexPatternTests.cs | 777 +++++++++--------- .../Formatting/DateFormatterTests.cs | 2 +- .../Formatting/EdgeCaseTests.cs | 2 +- .../Formatting/FormattableFormatterTests.cs | 2 +- .../Formatting/NumericFormatterTests.cs | 4 +- .../Formatting/SanitizeEnvVarNameTests.cs | 2 +- .../Formatting/SanitizeFormatTests.cs | 2 +- .../Formatting/SanitizeMemberNameTests.cs | 2 +- .../Formatting/StringFormatterTests.cs | 2 +- .../Formatting/ValueFormatterTests.cs | 2 +- ...elopBranchWithOneCommitMergedToMainWhen.cs | 3 +- ...gedToMainWhenMergedCommitTaggedAsStable.cs | 3 +- ...MergeCommitFromMainMergedBackToMainWhen.cs | 3 +- ...atureBranchWithAMergeCommitFromMainWhen.cs | 3 +- ...BranchWithOneCommitBranchedFromMainWhen.cs | 3 +- ...dFromMainWhenCommitAHasBumpMessageMajor.cs | 3 +- ...dFromMainWhenCommitAHasBumpMessageMinor.cs | 3 +- ...dFromMainWhenCommitAHasBumpMessagePatch.cs | 3 +- ...edFromMainWhenCommitATaggedAsPreRelease.cs | 3 +- ...romMainWhenCommitATaggedAsPreReleaseBar.cs | 3 +- ...romMainWhenCommitATaggedAsPreReleaseFoo.cs | 3 +- ...anchedFromMainWhenCommitATaggedAsStable.cs | 3 +- ...dFromMainWhenCommitBHasBumpMessageMajor.cs | 3 +- ...dFromMainWhenCommitBHasBumpMessageMinor.cs | 3 +- ...dFromMainWhenCommitBHasBumpMessagePatch.cs | 3 +- ...edFromMainWhenCommitBTaggedAsPreRelease.cs | 3 +- ...romMainWhenCommitBTaggedAsPreReleaseBar.cs | 3 +- ...romMainWhenCommitBTaggedAsPreReleaseFoo.cs | 3 +- ...anchedFromMainWhenCommitBTaggedAsStable.cs | 3 +- ...tureBranchWithOneCommitMergedToMainWhen.cs | 3 +- ...rgedToMainWhenCommitBTaggedAsPreRelease.cs | 3 +- ...dToMainWhenCommitBTaggedAsPreReleaseBar.cs | 3 +- ...dToMainWhenCommitBTaggedAsPreReleaseFoo.cs | 3 +- ...itMergedToMainWhenCommitBTaggedAsStable.cs | 3 +- ...oMainWithOneCommitBranchedToFeatureWhen.cs | 3 +- ...ow+GivenAFeatureBranchWithOneCommitWhen.cs | 3 +- ...hOneCommitWhenCommitHasBumpMessageMajor.cs | 3 +- ...hOneCommitWhenCommitHasBumpMessageMinor.cs | 3 +- ...hOneCommitWhenCommitHasBumpMessagePatch.cs | 3 +- ...thOneCommitWhenCommitTaggedAsPreRelease.cs | 3 +- ...neCommitWhenCommitTaggedAsPreReleaseBar.cs | 3 +- ...neCommitWhenCommitTaggedAsPreReleaseFoo.cs | 3 +- ...chWithOneCommitWhenCommitTaggedAsStable.cs | 3 +- ...nchWithThreeCommitsBranchedFromMainWhen.cs | 3 +- ...eBranchWithThreeCommitsMergedToMainWhen.cs | 3 +- ...GivenAFeatureBranchWithThreeCommitsWhen.cs | 3 +- ...ranchWithTwoCommitsBranchedFromMainWhen.cs | 3 +- ...ureBranchWithTwoCommitsMergedToMainWhen.cs | 3 +- ...ommitsWhenFirstCommitTaggedAsPreRelease.cs | 3 +- ...itsWhenFirstCommitTaggedAsPreReleaseBar.cs | 3 +- ...itsWhenFirstCommitTaggedAsPreReleaseFoo.cs | 3 +- ...ranchWithOneCommitBranchedToFeatureWhen.cs | 3 +- ...dToFeatureWhenCommitHasBumpMessageMajor.cs | 3 +- ...dToFeatureWhenCommitHasBumpMessageMinor.cs | 3 +- ...dToFeatureWhenCommitHasBumpMessagePatch.cs | 3 +- ...edToFeatureWhenCommitTaggedAsPreRelease.cs | 3 +- ...oFeatureWhenCommitTaggedAsPreReleaseBar.cs | 3 +- ...oFeatureWhenCommitTaggedAsPreReleaseFoo.cs | 3 +- ...anchedToFeatureWhenCommitTaggedAsStable.cs | 3 +- ...bFlow+GivenAMainBranchWithOneCommitWhen.cs | 3 +- ...hOneCommitWhenCommitHasBumpMessageMajor.cs | 3 +- ...hOneCommitWhenCommitHasBumpMessageMinor.cs | 3 +- ...hOneCommitWhenCommitHasBumpMessagePatch.cs | 3 +- ...thOneCommitWhenCommitTaggedAsPreRelease.cs | 3 +- ...neCommitWhenCommitTaggedAsPreReleaseBar.cs | 3 +- ...neCommitWhenCommitTaggedAsPreReleaseFoo.cs | 3 +- ...chWithOneCommitWhenCommitTaggedAsStable.cs | 3 +- ...ow+GivenAMainBranchWithThreeCommitsWhen.cs | 3 +- ...anchWithTwoCommitsBranchedToFeatureWhen.cs | 3 +- ...atureWhenFirstCommitHasBumpMessageMajor.cs | 3 +- ...atureWhenFirstCommitHasBumpMessageMinor.cs | 3 +- ...atureWhenFirstCommitHasBumpMessagePatch.cs | 3 +- ...eatureWhenFirstCommitTaggedAsPreRelease.cs | 3 +- ...ureWhenFirstCommitTaggedAsPreReleaseBar.cs | 3 +- ...ureWhenFirstCommitTaggedAsPreReleaseFoo.cs | 3 +- ...dToFeatureWhenFirstCommitTaggedAsStable.cs | 3 +- ...Flow+GivenAMainBranchWithTwoCommitsWhen.cs | 3 +- ...mmitsWhenFirstCommitHasBumpMessageMajor.cs | 3 +- ...mmitsWhenFirstCommitHasBumpMessageMinor.cs | 3 +- ...mmitsWhenFirstCommitHasBumpMessagePatch.cs | 3 +- ...ommitsWhenFirstCommitTaggedAsPreRelease.cs | 3 +- ...itsWhenFirstCommitTaggedAsPreReleaseBar.cs | 3 +- ...itsWhenFirstCommitTaggedAsPreReleaseFoo.cs | 3 +- ...TwoCommitsWhenFirstCommitTaggedAsStable.cs | 3 +- ...mitsWhenSecondCommitHasBumpMessageMajor.cs | 3 +- ...mitsWhenSecondCommitHasBumpMessageMinor.cs | 3 +- ...mitsWhenSecondCommitHasBumpMessagePatch.cs | 3 +- ...mmitsWhenSecondCommitTaggedAsPreRelease.cs | 3 +- ...tsWhenSecondCommitTaggedAsPreReleaseBar.cs | 3 +- ...tsWhenSecondCommitTaggedAsPreReleaseFoo.cs | 3 +- ...woCommitsWhenSecondCommitTaggedAsStable.cs | 3 +- .../Formatting/IExpressionCompiler.cs | 9 +- .../Formatting/IInputSanitizer.cs | 13 +- .../Output/AssemblyFileVersionTests.cs | 2 +- .../Output/AssemblyInfoFileUpdaterTests.cs | 3 +- .../Output/FormatArgumentTests.cs | 2 +- .../Output/GitVersionInfoGeneratorTests.cs | 2 +- .../InformationalVersionBuilderTests.cs | 2 +- .../Output/ProjectFileUpdaterTests.cs | 3 +- .../Output/WixFileTests.cs | 2 +- 121 files changed, 534 insertions(+), 609 deletions(-) diff --git a/src/GitVersion.App.Tests/QuotedStringHelpersTests.cs b/src/GitVersion.App.Tests/QuotedStringHelpersTests.cs index e615754a2b..27fb4ebbb6 100644 --- a/src/GitVersion.App.Tests/QuotedStringHelpersTests.cs +++ b/src/GitVersion.App.Tests/QuotedStringHelpersTests.cs @@ -1,6 +1,4 @@ -using GitVersion; - -namespace GitVersionExe.Tests; +namespace GitVersion.App.Tests; [TestFixture] public class QuotedStringHelpersTests diff --git a/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs index 8b47470f1f..ed519a02e9 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs @@ -1,6 +1,7 @@ +using GitVersion.Agents; using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class AzurePipelinesTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs index 2591d9e722..8e49f9a00c 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs @@ -1,10 +1,11 @@ using System.IO.Abstractions; +using GitVersion.Agents; using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class BitBucketPipelinesTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs index ae90b01d02..5cf00a2868 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs @@ -1,6 +1,7 @@ +using GitVersion.Agents; using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class BuildKiteTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs index b05250e772..372c013a46 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs @@ -1,11 +1,12 @@ using System.IO.Abstractions; +using GitVersion.Agents; using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; using GitVersion.Logging; using GitVersion.OutputVariables; using GitVersion.VersionCalculation; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class BuildServerBaseTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs index f62d451f41..c79a15109f 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs @@ -1,10 +1,11 @@ using System.IO.Abstractions; +using GitVersion.Agents; using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public sealed class CodeBuildTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs index dd051376c5..52d29a3f5e 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs @@ -1,6 +1,7 @@ +using GitVersion.Agents; using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class ContinuaCiTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs index 57e8e488ba..d0755055ce 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs @@ -1,6 +1,7 @@ +using GitVersion.Agents; using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class DroneTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs index b89d610d89..c8c21edc27 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs @@ -1,8 +1,9 @@ using System.IO.Abstractions; +using GitVersion.Agents; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class EnvRunTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs index eaa30d0fd6..6e99383704 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs @@ -1,8 +1,9 @@ using System.IO.Abstractions; +using GitVersion.Agents; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class GitHubActionsTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs index 9296f90a0d..5e6ebb9b40 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs @@ -1,10 +1,11 @@ using System.IO.Abstractions; +using GitVersion.Agents; using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class GitLabCiTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs index f215cf60c6..bb82d431b2 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs @@ -1,10 +1,11 @@ using System.IO.Abstractions; +using GitVersion.Agents; using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class JenkinsTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs index fa89c4230c..a323328a7f 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs @@ -1,6 +1,7 @@ +using GitVersion.Agents; using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class MyGetTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs index 9b9bc01e66..349fb6dce2 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs @@ -1,6 +1,7 @@ +using GitVersion.Agents; using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class SpaceAutomationTests : TestBase diff --git a/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs index c640d2b3fa..dfed323cd5 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs @@ -1,6 +1,7 @@ +using GitVersion.Agents; using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Agents.Tests; +namespace GitVersion.BuildAgents.Tests; [TestFixture] public class TeamCityTests : TestBase diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs index 97e225f752..b1f4bc6be1 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs @@ -1,8 +1,7 @@ -using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; using GitVersion.Git; -namespace GitVersion.Core.Tests.Configuration; +namespace GitVersion.Configuration.Tests; [TestFixture] public class ConfigurationExtensionsTests : TestBase diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs index bd4edb762a..9c76249c53 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs @@ -1,11 +1,9 @@ using System.IO.Abstractions; -using GitVersion.Configuration; -using GitVersion.Configuration.Tests.Configuration; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; -namespace GitVersion.Core.Tests; +namespace GitVersion.Configuration.Tests; [TestFixture] public static class ConfigurationFileLocatorTests diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs index 9ba695dca8..823cab01f2 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs @@ -1,13 +1,12 @@ using System.IO.Abstractions; using System.Runtime.CompilerServices; -using GitVersion.Configuration; -using GitVersion.Configuration.Tests.Configuration; +using GitVersion.Core; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Configuration.Tests; [TestFixture] public class ConfigurationProviderTests : TestBase diff --git a/src/GitVersion.Configuration.Tests/Configuration/Extensions.cs b/src/GitVersion.Configuration.Tests/Configuration/Extensions.cs index e8c971a253..491fdc926f 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/Extensions.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/Extensions.cs @@ -2,7 +2,7 @@ using GitVersion.Extensions; using GitVersion.Helpers; -namespace GitVersion.Configuration.Tests.Configuration; +namespace GitVersion.Configuration.Tests; public static class Extensions { diff --git a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs index 7d16ba2289..1eccacccca 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs @@ -1,8 +1,7 @@ -using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; using YamlDotNet.Core; -namespace GitVersion.Core.Tests.Configuration; +namespace GitVersion.Configuration.Tests; [TestFixture] public class IgnoreConfigurationTests : TestBase diff --git a/src/GitVersion.Configuration.Tests/Workflows/WorkflowsTests.cs b/src/GitVersion.Configuration.Tests/Workflows/WorkflowsTests.cs index 801d5239c4..7931e1997f 100644 --- a/src/GitVersion.Configuration.Tests/Workflows/WorkflowsTests.cs +++ b/src/GitVersion.Configuration.Tests/Workflows/WorkflowsTests.cs @@ -1,4 +1,4 @@ -namespace GitVersion.Configuration.Tests.Configuration; +namespace GitVersion.Configuration.Tests; [TestFixture] public class WorkflowsTests diff --git a/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs b/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs index 9ab32dd3a3..ebe0dcd89c 100644 --- a/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs +++ b/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs @@ -1,439 +1,438 @@ using System.Text.RegularExpressions; using static GitVersion.Core.RegexPatterns.AssemblyVersion; -namespace GitVersion.Core.Continuous.Tests +namespace GitVersion.Core.Tests; + +public class RegexPatternsTests { - public class RegexPatternsTests + [TestCase("/foo:", true, "/foo:")] + [TestCase("/bar:", true, "/bar:")] + [TestCase("foo:", false, null)] + public void SwitchArgumentRegex_MatchesExpected(string input, bool expected, string? expectedCapture) { - [TestCase("/foo:", true, "/foo:")] - [TestCase("/bar:", true, "/bar:")] - [TestCase("foo:", false, null)] - public void SwitchArgumentRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.SwitchArgumentRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + var match = RegexPatterns.SwitchArgumentRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("https://user:pass@host", true, "https://user:pass@")] - [TestCase("http://user:pass@host", true, "http://user:pass@")] - [TestCase("ftp://user:pass@host", false, null)] - public void ObscurePasswordRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.ObscurePasswordRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("https://user:pass@host", true, "https://user:pass@")] + [TestCase("http://user:pass@host", true, "http://user:pass@")] + [TestCase("ftp://user:pass@host", false, null)] + public void ObscurePasswordRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.ObscurePasswordRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("{env:FOO}", true, "{env:FOO}")] - [TestCase("{bar}", true, "{bar}")] - [TestCase("{env:FOO ?? \"fallback\"}", true, "{env:FOO ?? \"fallback\"}")] - [TestCase("{bar ?? fallback}", true, "{bar ?? fallback}")] - [TestCase("env:FOO", false, null)] - public void ExpandTokensRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.ExpandTokensRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("{env:FOO}", true, "{env:FOO}")] + [TestCase("{bar}", true, "{bar}")] + [TestCase("{env:FOO ?? \"fallback\"}", true, "{env:FOO ?? \"fallback\"}")] + [TestCase("{bar ?? fallback}", true, "{bar ?? fallback}")] + [TestCase("env:FOO", false, null)] + public void ExpandTokensRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.ExpandTokensRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("v", true, "v")] - [TestCase("V", true, "V")] - [TestCase("v1", true, "v")] - [TestCase("V2.0", true, "V")] - [TestCase("1", true, "")] - [TestCase("x", true, "")] - [TestCase("", true, "")] - public void DefaultTagPrefixRegex_MatchesExpected(string input, bool expected, string expectedCapture) - { - var match = RegexPatterns.Configuration.DefaultTagPrefixRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("v", true, "v")] + [TestCase("V", true, "V")] + [TestCase("v1", true, "v")] + [TestCase("V2.0", true, "V")] + [TestCase("1", true, "")] + [TestCase("x", true, "")] + [TestCase("", true, "")] + public void DefaultTagPrefixRegex_MatchesExpected(string input, bool expected, string expectedCapture) + { + var match = RegexPatterns.Configuration.DefaultTagPrefixRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("v1.2.3", true, "v1.2.3")] - [TestCase("1.2", true, "1.2")] - [TestCase("main", false, null)] - public void DefaultVersionInBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.DefaultVersionInBranchRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("v1.2.3", true, "v1.2.3")] + [TestCase("1.2", true, "1.2")] + [TestCase("main", false, null)] + public void DefaultVersionInBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.DefaultVersionInBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("main", true, "main")] - [TestCase("master", true, "master")] - [TestCase("develop", false, null)] - public void MainBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.MainBranchRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("main", true, "main")] + [TestCase("master", true, "master")] + [TestCase("develop", false, null)] + public void MainBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.MainBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("develop", true, "develop")] - [TestCase("development", true, "development")] - [TestCase("dev", true, "dev")] - [TestCase("main", false, null)] - public void DevelopBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.DevelopBranchRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("develop", true, "develop")] + [TestCase("development", true, "development")] + [TestCase("dev", true, "dev")] + [TestCase("main", false, null)] + public void DevelopBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.DevelopBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("release/1.0", true, "release/1.0")] - [TestCase("releases-2.0", true, "releases-2.0")] - [TestCase("feature/foo", false, null)] - public void ReleaseBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.ReleaseBranchRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("release/1.0", true, "release/1.0")] + [TestCase("releases-2.0", true, "releases-2.0")] + [TestCase("feature/foo", false, null)] + public void ReleaseBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.ReleaseBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("feature/foo", true, "feature/foo")] - [TestCase("features-bar", true, "features-bar")] - [TestCase("hotfix/1.0", false, null)] - public void FeatureBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.FeatureBranchRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("feature/foo", true, "feature/foo")] + [TestCase("features-bar", true, "features-bar")] + [TestCase("hotfix/1.0", false, null)] + public void FeatureBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.FeatureBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("pull-requests/123", true, "pull-requests/123")] - [TestCase("pull-123", true, "pull-123")] - [TestCase("pr-456", true, "pr-456")] - [TestCase("main", false, null)] - public void PullRequestBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.PullRequestBranchRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("pull-requests/123", true, "pull-requests/123")] + [TestCase("pull-123", true, "pull-123")] + [TestCase("pr-456", true, "pr-456")] + [TestCase("main", false, null)] + public void PullRequestBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.PullRequestBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("hotfix/1.0", true, "hotfix/1.0")] - [TestCase("hotfixes-2.0", true, "hotfixes-2.0")] - [TestCase("support/1.0", false, null)] - public void HotfixBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.HotfixBranchRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("hotfix/1.0", true, "hotfix/1.0")] + [TestCase("hotfixes-2.0", true, "hotfixes-2.0")] + [TestCase("support/1.0", false, null)] + public void HotfixBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.HotfixBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("support/1.0", true, "support/1.0")] - [TestCase("support-2.0", true, "support-2.0")] - [TestCase("main", false, null)] - public void SupportBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.SupportBranchRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("support/1.0", true, "support/1.0")] + [TestCase("support-2.0", true, "support-2.0")] + [TestCase("main", false, null)] + public void SupportBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.SupportBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("any-branch", true, "any-branch")] - [TestCase("main", true, "main")] - public void UnknownBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Configuration.UnknownBranchRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("any-branch", true, "any-branch")] + [TestCase("main", true, "main")] + public void UnknownBranchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Configuration.UnknownBranchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("Merge branch 'feature/foo' into develop", true, "Merge branch 'feature/foo' into develop")] - [TestCase("Merge tag 'v1.0.0'", true, "Merge tag 'v1.0.0'")] - [TestCase("Finish feature/foo", false, null)] - public void DefaultMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.MergeMessage.DefaultMergeMessageRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("Merge branch 'feature/foo' into develop", true, "Merge branch 'feature/foo' into develop")] + [TestCase("Merge tag 'v1.0.0'", true, "Merge tag 'v1.0.0'")] + [TestCase("Finish feature/foo", false, null)] + public void DefaultMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.MergeMessage.DefaultMergeMessageRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("Finish feature/foo into develop", true, "Finish feature/foo into develop")] - [TestCase("Finish bugfix/bar", true, "Finish bugfix/bar")] - [TestCase("Merge branch 'feature/foo'", false, null)] - public void SmartGitMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.MergeMessage.SmartGitMergeMessageRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("Finish feature/foo into develop", true, "Finish feature/foo into develop")] + [TestCase("Finish bugfix/bar", true, "Finish bugfix/bar")] + [TestCase("Merge branch 'feature/foo'", false, null)] + public void SmartGitMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.MergeMessage.SmartGitMergeMessageRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("Merge pull request #123 from repo from feature/foo to develop", true, "Merge pull request #123 from repo from feature/foo to develop")] - [TestCase("Merge pull request #1 in repo from bugfix/bar to main", true, "Merge pull request #1 in repo from bugfix/bar to main")] - [TestCase("Finish feature/foo", false, null)] - public void BitBucketPullMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.MergeMessage.BitBucketPullMergeMessageRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("Merge pull request #123 from repo from feature/foo to develop", true, "Merge pull request #123 from repo from feature/foo to develop")] + [TestCase("Merge pull request #1 in repo from bugfix/bar to main", true, "Merge pull request #1 in repo from bugfix/bar to main")] + [TestCase("Finish feature/foo", false, null)] + public void BitBucketPullMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.MergeMessage.BitBucketPullMergeMessageRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("Pull request #123\n\nMerge in repo from feature/foo to develop", true, "Pull request #123\n\nMerge in repo from feature/foo to develop")] - [TestCase("Pull request #1\n\nMerge in repo from bugfix/bar to main", true, "Pull request #1\n\nMerge in repo from bugfix/bar to main")] - [TestCase("Merge pull request #123 from repo from feature/foo to develop", false, null)] - public void BitBucketPullv7MergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.MergeMessage.BitBucketPullv7MergeMessageRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("Pull request #123\n\nMerge in repo from feature/foo to develop", true, "Pull request #123\n\nMerge in repo from feature/foo to develop")] + [TestCase("Pull request #1\n\nMerge in repo from bugfix/bar to main", true, "Pull request #1\n\nMerge in repo from bugfix/bar to main")] + [TestCase("Merge pull request #123 from repo from feature/foo to develop", false, null)] + public void BitBucketPullv7MergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.MergeMessage.BitBucketPullv7MergeMessageRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("Merged in feature/foo (pull request #123)", true, "Merged in feature/foo (pull request #123)")] - [TestCase("Merged in bugfix/bar (pull request #1)", true, "Merged in bugfix/bar (pull request #1)")] - [TestCase("Merge pull request #123 from repo from feature/foo to develop", false, null)] - public void BitBucketCloudPullMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.MergeMessage.BitBucketCloudPullMergeMessageRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("Merged in feature/foo (pull request #123)", true, "Merged in feature/foo (pull request #123)")] + [TestCase("Merged in bugfix/bar (pull request #1)", true, "Merged in bugfix/bar (pull request #1)")] + [TestCase("Merge pull request #123 from repo from feature/foo to develop", false, null)] + public void BitBucketCloudPullMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.MergeMessage.BitBucketCloudPullMergeMessageRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("Merge pull request #123 from repo/feature/foo", false, null)] - [TestCase("Merge pull request #123 from feature/foo into develop", false, null)] - public void AzureDevOpsPullMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("Merge pull request #123 from repo/feature/foo", false, null)] + [TestCase("Merge pull request #123 from feature/foo into develop", false, null)] + public void AzureDevOpsPullMergeMessageRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("[assembly: AssemblyVersion(\"1.0.0.0\")]", true, "[assembly: AssemblyVersion(\"1.0.0.0\")]")] - [TestCase("[assembly: AssemblyFileVersion(\"1.0.0.0\")]", true, "[assembly: AssemblyFileVersion(\"1.0.0.0\")]")] - [TestCase("[assembly: AssemblyInformationalVersion(\"1.0.0.0\")]", true, "[assembly: AssemblyInformationalVersion(\"1.0.0.0\")]")] - [TestCase("random text", false, null)] - public void CsharpAssemblyAttributeRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Output.CsharpAssemblyAttributeRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("[assembly: AssemblyVersion(\"1.0.0.0\")]", true, "[assembly: AssemblyVersion(\"1.0.0.0\")]")] + [TestCase("[assembly: AssemblyFileVersion(\"1.0.0.0\")]", true, "[assembly: AssemblyFileVersion(\"1.0.0.0\")]")] + [TestCase("[assembly: AssemblyInformationalVersion(\"1.0.0.0\")]", true, "[assembly: AssemblyInformationalVersion(\"1.0.0.0\")]")] + [TestCase("random text", false, null)] + public void CsharpAssemblyAttributeRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Output.CsharpAssemblyAttributeRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("[]", true, "[]")] - [TestCase("[]", true, "[]")] - [TestCase("[]", true, "[]")] - [TestCase("random text", false, null)] - public void FsharpAssemblyAttributeRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Output.FsharpAssemblyAttributeRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("[]", true, "[]")] + [TestCase("[]", true, "[]")] + [TestCase("[]", true, "[]")] + [TestCase("random text", false, null)] + public void FsharpAssemblyAttributeRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Output.FsharpAssemblyAttributeRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("", true, "")] - [TestCase("", true, "")] - [TestCase("", true, "")] - [TestCase("random text", false, null)] - public void VisualBasicAssemblyAttributeRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.Output.VisualBasicAssemblyAttributeRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("", true, "")] + [TestCase("", true, "")] + [TestCase("", true, "")] + [TestCase("random text", false, null)] + public void VisualBasicAssemblyAttributeRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.Output.VisualBasicAssemblyAttributeRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("+semver: major", true, "+semver: major")] - [TestCase("+semver: breaking", true, "+semver: breaking")] - [TestCase("+semver: minor", false, null)] - public void DefaultMajorRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.VersionCalculation.DefaultMajorRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("+semver: major", true, "+semver: major")] + [TestCase("+semver: breaking", true, "+semver: breaking")] + [TestCase("+semver: minor", false, null)] + public void DefaultMajorRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.VersionCalculation.DefaultMajorRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("+semver: minor", true, "+semver: minor")] - [TestCase("+semver: feature", true, "+semver: feature")] - [TestCase("+semver: patch", false, null)] - public void DefaultMinorRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.VersionCalculation.DefaultMinorRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("+semver: minor", true, "+semver: minor")] + [TestCase("+semver: feature", true, "+semver: feature")] + [TestCase("+semver: patch", false, null)] + public void DefaultMinorRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.VersionCalculation.DefaultMinorRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("+semver: patch", true, "+semver: patch")] - [TestCase("+semver: fix", true, "+semver: fix")] - [TestCase("+semver: none", false, null)] - public void DefaultPatchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.VersionCalculation.DefaultPatchRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("+semver: patch", true, "+semver: patch")] + [TestCase("+semver: fix", true, "+semver: fix")] + [TestCase("+semver: none", false, null)] + public void DefaultPatchRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.VersionCalculation.DefaultPatchRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("+semver: none", true, "+semver: none")] - [TestCase("+semver: skip", true, "+semver: skip")] - [TestCase("+semver: patch", false, null)] - public void DefaultNoBumpRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.VersionCalculation.DefaultNoBumpRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("+semver: none", true, "+semver: none")] + [TestCase("+semver: skip", true, "+semver: skip")] + [TestCase("+semver: patch", false, null)] + public void DefaultNoBumpRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.VersionCalculation.DefaultNoBumpRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("1.2.3", true, "1.2.3")] - [TestCase("1.2.3-alpha", true, "1.2.3-alpha")] - [TestCase("1.2", false, null)] - public void ParseStrictRegex_MatchesExpected(string input, bool expected, string? expectedCapture) - { - var match = RegexPatterns.SemanticVersion.ParseStrictRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("1.2.3", true, "1.2.3")] + [TestCase("1.2.3-alpha", true, "1.2.3-alpha")] + [TestCase("1.2", false, null)] + public void ParseStrictRegex_MatchesExpected(string input, bool expected, string? expectedCapture) + { + var match = RegexPatterns.SemanticVersion.ParseStrictRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("1.2.3", true, "1.2.3")] - [TestCase("1.2", true, "1.2")] - [TestCase("1", true, "1")] - [TestCase("1.2.3.4", true, "1.2.3.4")] - public void ParseLooseRegex_MatchesExpected(string input, bool expected, string expectedCapture) - { - var match = RegexPatterns.SemanticVersion.ParseLooseRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("1.2.3", true, "1.2.3")] + [TestCase("1.2", true, "1.2")] + [TestCase("1", true, "1")] + [TestCase("1.2.3.4", true, "1.2.3.4")] + public void ParseLooseRegex_MatchesExpected(string input, bool expected, string expectedCapture) + { + var match = RegexPatterns.SemanticVersion.ParseLooseRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("123.BranchName.foo.Sha.abc", true, "123.BranchName.foo.Sha.abc")] - [TestCase("Branch.Name.develop", true, "Branch.Name.develop")] - [TestCase("random", true, "random")] - public void ParseBuildMetaDataRegex_MatchesExpected(string input, bool expected, string expectedCapture) - { - var match = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("123.BranchName.foo.Sha.abc", true, "123.BranchName.foo.Sha.abc")] + [TestCase("Branch.Name.develop", true, "Branch.Name.develop")] + [TestCase("random", true, "random")] + public void ParseBuildMetaDataRegex_MatchesExpected(string input, bool expected, string expectedCapture) + { + var match = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("meta-data", false, new string[0])] - [TestCase("meta_data", true, new[] { "_" })] - [TestCase("meta.data", false, new string[0])] - [TestCase("meta+data$", true, new[] { "+", "$" })] - [TestCase("m@e#t!a", true, new[] { "@", "#", "!" })] - public void FormatBuildMetaDataRegex_CapturesInvalidCharacters(string input, bool shouldMatch, string[] expectedCaptures) - { - var matches = RegexPatterns.SemanticVersion.FormatBuildMetaDataRegex.Matches(input); + [TestCase("meta-data", false, new string[0])] + [TestCase("meta_data", true, new[] { "_" })] + [TestCase("meta.data", false, new string[0])] + [TestCase("meta+data$", true, new[] { "+", "$" })] + [TestCase("m@e#t!a", true, new[] { "@", "#", "!" })] + public void FormatBuildMetaDataRegex_CapturesInvalidCharacters(string input, bool shouldMatch, string[] expectedCaptures) + { + var matches = RegexPatterns.SemanticVersion.FormatBuildMetaDataRegex.Matches(input); - var matched = matches.Count > 0; - matched.ShouldBe(shouldMatch, $"Expected match: {shouldMatch}, but found {matches.Count} matches."); + var matched = matches.Count > 0; + matched.ShouldBe(shouldMatch, $"Expected match: {shouldMatch}, but found {matches.Count} matches."); - var captured = new List(); - foreach (Match m in matches) - captured.Add(m.Value); + var captured = new List(); + foreach (Match m in matches) + captured.Add(m.Value); - captured.ShouldBe(expectedCaptures); - } + captured.ShouldBe(expectedCaptures); + } - [TestCase("alpha.1", true, "alpha.1")] - [TestCase("beta", true, "beta")] - [TestCase("rc.2", true, "rc.2")] - public void ParsePreReleaseTagRegex_MatchesExpected(string input, bool expected, string expectedCapture) - { - var match = RegexPatterns.SemanticVersion.ParsePreReleaseTagRegex.Match(input); - match.Success.ShouldBe(expected); - if (expected) - match.Value.ShouldBe(expectedCapture); - } + [TestCase("alpha.1", true, "alpha.1")] + [TestCase("beta", true, "beta")] + [TestCase("rc.2", true, "rc.2")] + public void ParsePreReleaseTagRegex_MatchesExpected(string input, bool expected, string expectedCapture) + { + var match = RegexPatterns.SemanticVersion.ParsePreReleaseTagRegex.Match(input); + match.Success.ShouldBe(expected); + if (expected) + match.Value.ShouldBe(expectedCapture); + } - [TestCase("/* block comment */", true, "block", " block comment ")] - [TestCase("// line comment\r\n", true, "line", " line comment")] - [TestCase("\"string \\\"text\\\" inside\"", true, "str", "string \\\"text\\\" inside")] - [TestCase("int x = 5;", false, "", "")] - public void CSharpTriviaRegex_CapturesExpected(string input, bool expectedMatch, string expectedGroup, string expectedGroupValue) - { - var regex = CSharp.TriviaRegex; - var match = regex.Match(input); - match.Success.ShouldBe(expectedMatch); + [TestCase("/* block comment */", true, "block", " block comment ")] + [TestCase("// line comment\r\n", true, "line", " line comment")] + [TestCase("\"string \\\"text\\\" inside\"", true, "str", "string \\\"text\\\" inside")] + [TestCase("int x = 5;", false, "", "")] + public void CSharpTriviaRegex_CapturesExpected(string input, bool expectedMatch, string expectedGroup, string expectedGroupValue) + { + var regex = CSharp.TriviaRegex; + var match = regex.Match(input); + match.Success.ShouldBe(expectedMatch); - if (expectedMatch && !string.IsNullOrEmpty(expectedGroup)) + if (expectedMatch && !string.IsNullOrEmpty(expectedGroup)) + { + // Match group 1: block, group 2: line, group 3: string + var groups = match.Groups; + var actualGroupValue = expectedGroup switch { - // Match group 1: block, group 2: line, group 3: string - var groups = match.Groups; - var actualGroupValue = expectedGroup switch - { - "block" => groups[1].Success ? groups[1].Value : "", - "line" => groups[2].Success ? groups[2].Value : "", - "str" => groups[3].Success ? groups[3].Value : "", - _ => "" - }; - actualGroupValue.ShouldBe(expectedGroupValue); - } + "block" => groups[1].Success ? groups[1].Value : "", + "line" => groups[2].Success ? groups[2].Value : "", + "str" => groups[3].Success ? groups[3].Value : "", + _ => "" + }; + actualGroupValue.ShouldBe(expectedGroupValue); } + } - [TestCase("[assembly: AssemblyVersion()]", true)] - [TestCase("[assembly:AssemblyFileVersion()]", true)] - [TestCase("[assembly:System.Reflection.AssemblyInformationalVersion()]", true)] - [TestCase("[assembly: AssemblyTitle(\"App\")]", false)] - public void CSharpAttributeRegex_MatchesExpected(string input, bool expectedMatch) - { - var regex = CSharp.AttributeRegex; - var match = regex.Match(input); - match.Success.ShouldBe(expectedMatch); - } + [TestCase("[assembly: AssemblyVersion()]", true)] + [TestCase("[assembly:AssemblyFileVersion()]", true)] + [TestCase("[assembly:System.Reflection.AssemblyInformationalVersion()]", true)] + [TestCase("[assembly: AssemblyTitle(\"App\")]", false)] + public void CSharpAttributeRegex_MatchesExpected(string input, bool expectedMatch) + { + var regex = CSharp.AttributeRegex; + var match = regex.Match(input); + match.Success.ShouldBe(expectedMatch); + } - [TestCase("/* block comment */", true, "block", " block comment ")] - [TestCase("// line comment\r\n", true, "line", " line comment")] - [TestCase("\"string \\\"text\\\" inside\"", true, "str", "string \\\"text\\\" inside")] - [TestCase("let x = 1", false, "", "")] - public void FSharpTriviaRegex_CapturesExpected(string input, bool expectedMatch, string expectedGroup, string expectedGroupValue) - { - var regex = FSharp.TriviaRegex; - var match = regex.Match(input); - match.Success.ShouldBe(expectedMatch); + [TestCase("/* block comment */", true, "block", " block comment ")] + [TestCase("// line comment\r\n", true, "line", " line comment")] + [TestCase("\"string \\\"text\\\" inside\"", true, "str", "string \\\"text\\\" inside")] + [TestCase("let x = 1", false, "", "")] + public void FSharpTriviaRegex_CapturesExpected(string input, bool expectedMatch, string expectedGroup, string expectedGroupValue) + { + var regex = FSharp.TriviaRegex; + var match = regex.Match(input); + match.Success.ShouldBe(expectedMatch); - if (expectedMatch && !string.IsNullOrEmpty(expectedGroup)) + if (expectedMatch && !string.IsNullOrEmpty(expectedGroup)) + { + var groups = match.Groups; + var actualGroupValue = expectedGroup switch { - var groups = match.Groups; - var actualGroupValue = expectedGroup switch - { - "block" => groups[1].Success ? groups[1].Value : "", - "line" => groups[2].Success ? groups[2].Value : "", - "str" => groups[3].Success ? groups[3].Value : "", - _ => "" - }; - actualGroupValue.ShouldBe(expectedGroupValue); - } + "block" => groups[1].Success ? groups[1].Value : "", + "line" => groups[2].Success ? groups[2].Value : "", + "str" => groups[3].Success ? groups[3].Value : "", + _ => "" + }; + actualGroupValue.ShouldBe(expectedGroupValue); } + } - [TestCase("[]", true)] - [TestCase("[]", true)] - [TestCase("[]", true)] - [TestCase("[]", false)] - [TestCase("[assembly: AssemblyVersion()]", false)] - public void FSharpAttributeRegex_MatchesExpected(string input, bool expectedMatch) - { - var regex = FSharp.AttributeRegex; - var match = regex.Match(input); - match.Success.ShouldBe(expectedMatch); - } + [TestCase("[]", true)] + [TestCase("[]", true)] + [TestCase("[]", true)] + [TestCase("[]", false)] + [TestCase("[assembly: AssemblyVersion()]", false)] + public void FSharpAttributeRegex_MatchesExpected(string input, bool expectedMatch) + { + var regex = FSharp.AttributeRegex; + var match = regex.Match(input); + match.Success.ShouldBe(expectedMatch); } } diff --git a/src/GitVersion.Core.Tests/Formatting/DateFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/DateFormatterTests.cs index 417c61d6b9..dd89018c81 100644 --- a/src/GitVersion.Core.Tests/Formatting/DateFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/DateFormatterTests.cs @@ -1,7 +1,7 @@ using System.Globalization; using GitVersion.Formatting; -namespace GitVersion.Tests.Formatting; +namespace GitVersion.Core.Tests.Formatting; [TestFixture] public class DateFormatterTests diff --git a/src/GitVersion.Core.Tests/Formatting/EdgeCaseTests.cs b/src/GitVersion.Core.Tests/Formatting/EdgeCaseTests.cs index 1e351af414..bd7e955aa2 100644 --- a/src/GitVersion.Core.Tests/Formatting/EdgeCaseTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/EdgeCaseTests.cs @@ -1,7 +1,7 @@ using GitVersion.Core.Tests.Extensions; using GitVersion.Formatting; -namespace GitVersion.Tests.Formatting; +namespace GitVersion.Core.Tests.Formatting; [TestFixture] public class EdgeCaseTests diff --git a/src/GitVersion.Core.Tests/Formatting/FormattableFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/FormattableFormatterTests.cs index 1404c18b20..8b0f75f048 100644 --- a/src/GitVersion.Core.Tests/Formatting/FormattableFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/FormattableFormatterTests.cs @@ -1,7 +1,7 @@ using System.Globalization; using GitVersion.Formatting; -namespace GitVersion.Tests.Formatting; +namespace GitVersion.Core.Tests.Formatting; [TestFixture] public class FormattableFormatterTests diff --git a/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs index e3cecaba18..dae044b694 100644 --- a/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs @@ -1,6 +1,6 @@ -using GitVersion.Formatting; +using GitVersion.Formatting; -namespace GitVersion.Tests.Formatting; +namespace GitVersion.Core.Tests.Formatting; [TestFixture] public class NumericFormatterTests diff --git a/src/GitVersion.Core.Tests/Formatting/SanitizeEnvVarNameTests.cs b/src/GitVersion.Core.Tests/Formatting/SanitizeEnvVarNameTests.cs index 90861d1957..4732fceb3e 100644 --- a/src/GitVersion.Core.Tests/Formatting/SanitizeEnvVarNameTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/SanitizeEnvVarNameTests.cs @@ -2,7 +2,7 @@ using GitVersion.Core.Tests.Extensions; using GitVersion.Formatting; -namespace GitVersion.Tests.Formatting; +namespace GitVersion.Core.Tests.Formatting; [SuppressMessage("Style", "IDE0059:Unnecessary assignment of a value")] [SuppressMessage("Style", "IDE0060:Remove unused parameter")] diff --git a/src/GitVersion.Core.Tests/Formatting/SanitizeFormatTests.cs b/src/GitVersion.Core.Tests/Formatting/SanitizeFormatTests.cs index c34ab3cf75..632bbb4a6d 100644 --- a/src/GitVersion.Core.Tests/Formatting/SanitizeFormatTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/SanitizeFormatTests.cs @@ -2,7 +2,7 @@ using GitVersion.Core.Tests.Extensions; using GitVersion.Formatting; -namespace GitVersion.Tests.Formatting; +namespace GitVersion.Core.Tests.Formatting; [SuppressMessage("Style", "IDE0059:Unnecessary assignment of a value")] [SuppressMessage("Style", "IDE0060:Remove unused parameter")] diff --git a/src/GitVersion.Core.Tests/Formatting/SanitizeMemberNameTests.cs b/src/GitVersion.Core.Tests/Formatting/SanitizeMemberNameTests.cs index 196369f672..1aae91f1b4 100644 --- a/src/GitVersion.Core.Tests/Formatting/SanitizeMemberNameTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/SanitizeMemberNameTests.cs @@ -2,7 +2,7 @@ using GitVersion.Core.Tests.Extensions; using GitVersion.Formatting; -namespace GitVersion.Tests.Formatting; +namespace GitVersion.Core.Tests.Formatting; [SuppressMessage("Style", "IDE0059:Unnecessary assignment of a value")] [SuppressMessage("Style", "IDE0060:Remove unused parameter")] diff --git a/src/GitVersion.Core.Tests/Formatting/StringFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/StringFormatterTests.cs index b9f3c0a27d..7c9024fe79 100644 --- a/src/GitVersion.Core.Tests/Formatting/StringFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/StringFormatterTests.cs @@ -1,6 +1,6 @@ using GitVersion.Formatting; -namespace GitVersion.Tests.Formatting; +namespace GitVersion.Core.Tests.Formatting; [TestFixture] public class StringFormatterTests diff --git a/src/GitVersion.Core.Tests/Formatting/ValueFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/ValueFormatterTests.cs index 9950cac172..675377215e 100644 --- a/src/GitVersion.Core.Tests/Formatting/ValueFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/ValueFormatterTests.cs @@ -1,7 +1,7 @@ using System.Globalization; using GitVersion.Formatting; -namespace GitVersion.Tests.Formatting; +namespace GitVersion.Core.Tests.Formatting; [TestFixture] public class ValueFormatterTests diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs index a5aea34d59..7780f7d084 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs index 56d0c34058..e45a381dac 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs index f75a421465..842d8f19f2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs index be7bb20183..f7f6cd8437 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs index 056b99c67d..76dc7520de 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs index a90ef9738e..de661ff7b2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs index 6fc3e13dc1..53f954be4a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs index 33c97d5e47..0cb2b73865 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs index 1e6a24e164..18894fe890 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs index a50bc81e5e..81054fe4a8 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs index be1880f471..5455497e3d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs index c690dd0e46..1f1586b34f 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs index 78aa97b4d5..14d40e34c9 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs index 9e1b6010e9..51b7fe0c5b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs index a8aad4846a..942b0d9328 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs index 29402322b8..84f5def54a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs index 7042a0de5b..4c255b3c7c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs index a800029a17..4ebfd02892 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs index 34761f7368..2796e9bf66 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs index 2911b46c06..c6682d3614 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs index bb6df43976..90e957ace6 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs index 2ac02b450c..169403fd26 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs index 1290e54739..9821b13fab 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs index 8eb4d54f3d..080fa49b0a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs index df008b5729..ee5830cb24 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs index f6e5a175c8..765d132e25 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs index a34be8392f..4a1eb2c06f 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs index a19ad8435b..8fb5adb627 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs index d6cc0f6172..8545c8067a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs index 5608425e2e..c4c9e5fe03 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs index 5baeb6e497..837d175729 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs index 3bd3d3102b..8ff3cb8a67 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs index 96e26d198f..0fcf8346a1 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs index 3855ccfe24..6f3e4f71cd 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs index 390ad6ff7f..897726a863 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs index fdbd50ea09..659a552d84 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs index 0064ef1b22..5bcd275e03 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs index 2a20479a76..346f1fcfee 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs index aba1a51ba8..66277de202 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs index 5bfc758519..d187c7c867 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs index af9c3db630..56db17c002 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs index d7f83c1050..a81a72668b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs index 0d60fab5a2..2c92353369 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs index 70a36e4147..0945585a28 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs index 7212125678..36c93e2b98 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs index 6e7d47dbc8..27dcb59c75 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs index 8a47054e1c..07648d8455 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs index 0991ece38f..0ab3f5a1a5 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs index 8aeb23d1d0..e2f9621354 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs index a67e13abe0..3749bd3d57 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs index c47702dab7..a6351d2b33 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs index 76b0fb4fde..a32d8e1e37 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs index 9dc943b1b3..a5a28fce8d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs index bceb3c68ee..09b616fd81 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs index 480a1ea96b..fb208b9e36 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs index 7447f05b03..0a7508610d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs index 1888104646..b02821e85e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs index b54b2b2fc6..a2bb7d135c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs index 1bd610bc44..3e2f0d2990 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs index 53482742a2..f9d8386e55 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs index 9cd527578e..5007342249 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs index d0ca485f66..55c8360b34 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs index aa877afbb3..8e8b596e1e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs index 5f0f7d87c6..f37f78e1ce 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs index 6ef7888f38..b9dc12278e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs index 678d5a89f9..a8e9e23331 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs index 0edfa59d41..a12147ad13 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs index 245e7278d6..62cf8f596c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs index 3b7118ac1a..f3c203bffc 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs index 0a42808216..7e5dab7025 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs index 6029f50fc3..9b3d7e0678 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs index d1b906c852..c1fdc78f51 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs index b7893bbedf..878ca59750 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs index 90a715db68..8e6608c1ef 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs index ac38deaa29..77464e7a95 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs index 60003490be..06b4a776c9 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs index e9472a0dfa..d1c8aab464 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs index 6500ab1274..9b43116068 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs index 3c43764423..57bf37457d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs index 3c0d840471..60d93e059f 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs index 2da090eafe..7f96a45d2a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Mainline; +namespace GitVersion.Core.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core/Formatting/IExpressionCompiler.cs b/src/GitVersion.Core/Formatting/IExpressionCompiler.cs index 82be9811e9..0466e2eff8 100644 --- a/src/GitVersion.Core/Formatting/IExpressionCompiler.cs +++ b/src/GitVersion.Core/Formatting/IExpressionCompiler.cs @@ -1,7 +1,6 @@ -namespace GitVersion.Formatting +namespace GitVersion.Formatting; + +internal interface IExpressionCompiler { - internal interface IExpressionCompiler - { - Func CompileGetter(Type type, MemberInfo[] memberPath); - } + Func CompileGetter(Type type, MemberInfo[] memberPath); } diff --git a/src/GitVersion.Core/Formatting/IInputSanitizer.cs b/src/GitVersion.Core/Formatting/IInputSanitizer.cs index ead3dcedcc..50c68b4fe1 100644 --- a/src/GitVersion.Core/Formatting/IInputSanitizer.cs +++ b/src/GitVersion.Core/Formatting/IInputSanitizer.cs @@ -1,11 +1,10 @@ -namespace GitVersion.Formatting +namespace GitVersion.Formatting; + +internal interface IInputSanitizer { - internal interface IInputSanitizer - { - string SanitizeEnvVarName(string name); + string SanitizeEnvVarName(string name); - string SanitizeFormat(string format); + string SanitizeFormat(string format); - string SanitizeMemberName(string memberName); - } + string SanitizeMemberName(string memberName); } diff --git a/src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs b/src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs index d6f50b26ee..b3a44c07e0 100644 --- a/src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs +++ b/src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs @@ -2,7 +2,7 @@ using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] public class AssemblyFileVersionTests : TestBase diff --git a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs index 38f50839f0..90d7cf0c93 100644 --- a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs @@ -1,5 +1,6 @@ using System.IO.Abstractions; using GitVersion.Configuration; +using GitVersion.Core; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; @@ -7,7 +8,7 @@ using GitVersion.OutputVariables; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] [Parallelizable(ParallelScope.None)] diff --git a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs index df42c725ab..cb09c018d7 100644 --- a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs +++ b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs @@ -4,7 +4,7 @@ using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] public class FormatArgumentTests : TestBase diff --git a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs index 86c05b1af1..920627d8c5 100644 --- a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs +++ b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs @@ -5,7 +5,7 @@ using GitVersion.Output.GitVersionInfo; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] [Parallelizable(ParallelScope.None)] diff --git a/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs b/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs index b9e1bb6a24..c3774d24b1 100644 --- a/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs +++ b/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs @@ -1,6 +1,6 @@ using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] public class InformationalVersionBuilderTests : TestBase diff --git a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs index 9513524dbf..d2f340a1f6 100644 --- a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs @@ -1,6 +1,7 @@ using System.IO.Abstractions; using System.Xml.Linq; using GitVersion.Configuration; +using GitVersion.Core; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; @@ -8,7 +9,7 @@ using GitVersion.OutputVariables; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] [Parallelizable(ParallelScope.None)] diff --git a/src/GitVersion.Output.Tests/Output/WixFileTests.cs b/src/GitVersion.Output.Tests/Output/WixFileTests.cs index a6da3a5aee..883dac290f 100644 --- a/src/GitVersion.Output.Tests/Output/WixFileTests.cs +++ b/src/GitVersion.Output.Tests/Output/WixFileTests.cs @@ -6,7 +6,7 @@ using GitVersion.Output.WixUpdater; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Output.Tests; [TestFixture] [Parallelizable(ParallelScope.None)] From c1b5f1a334d53104096d02df4926f3266d48d6bb Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 30 Jan 2026 16:09:34 +0100 Subject: [PATCH 102/358] ci(mergify): Configure merge queue for automated PRs Transition to a Mergify merge queue to ensure pull requests remain up-to-date prior to merging. Automatically squash Dependabot updates for a cleaner commit history. --- .github/mergify.yml | 32 ++++++++++++++++++++++---------- .gitversion.yml | 1 + 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/.github/mergify.yml b/.github/mergify.yml index 2a9dca3674..7a10ae99d7 100644 --- a/.github/mergify.yml +++ b/.github/mergify.yml @@ -1,19 +1,22 @@ +# $schema: https://docs.mergify.com/mergify-configuration-schema.json pull_request_rules: - - name: Automatic approve on dependabot PR + # 1. Handle Dependabot: Approve and Queue for merge + - name: Automatic merge and approval for Dependabot conditions: - author~=^dependabot(|-preview)\[bot\]$ - actions: - review: - type: APPROVE - - name: Automatic merge on dependabot PR after success CI - conditions: - - author~=^dependabot(|-preview)\[bot\]$ - - '#commits-behind=0' # Only merge up to date pull requests - check-success=DotNet Format - check-success=Release - - repository-full-name=GitTools/GitVersion # Don't auto-merge PRs in forks + - check-success=Build & Test (new-cli) + # Using repository-name is cleaner than full-name if you just care about the repo name + - repository-full-name=GitTools/GitVersion actions: - merge: + review: + type: APPROVE + message: "Automatic approval for Dependabot update." + queue: + name: default + + # 2. Thank human contributors - name: Thank contributor conditions: - merged @@ -21,3 +24,12 @@ pull_request_rules: actions: comment: message: "Thank you @{{author}} for your contribution!" + +# 3. Use a Queue to handle the "up-to-date" requirement automatically +queue_rules: + - name: default + merge_method: squash + queue_conditions: + - check-success=DotNet Format + - check-success=Release + - check-success=Build & Test (new-cli) diff --git a/.gitversion.yml b/.gitversion.yml index 7c62fc859e..088814cbfe 100644 --- a/.gitversion.yml +++ b/.gitversion.yml @@ -1,3 +1,4 @@ +# $schema: https://gitversion.net/schemas/6.4/GitVersion.configuration.json workflow: GitFlow/v1 mode: ManualDeployment branches: From af40a8833cc59d77ce305a7f38ec7a1b0d43bb22 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 30 Jan 2026 17:28:59 +0100 Subject: [PATCH 103/358] refactor(di): Encapsulate host dependency registration Moves configuration of application options and core components into dedicated DI modules for improved modularity. Introduces host classes to centralize module loading for both CLI and MSBuild contexts. --- src/GitVersion.App/CliHost.cs | 25 ++++++++----------- src/GitVersion.App/GitVersionAppModule.cs | 10 +++++++- .../GitVersionMsBuildModule.cs | 13 ++++++++-- src/GitVersion.MsBuild/GitVersionTasks.cs | 16 +----------- src/GitVersion.MsBuild/MsBuildHost.cs | 19 ++++++++++++++ src/GitVersion.MsBuild/PublicAPI.Shipped.txt | 3 --- 6 files changed, 51 insertions(+), 35 deletions(-) create mode 100644 src/GitVersion.MsBuild/MsBuildHost.cs diff --git a/src/GitVersion.App/CliHost.cs b/src/GitVersion.App/CliHost.cs index 4ad05282b5..b3cb521ef3 100644 --- a/src/GitVersion.App/CliHost.cs +++ b/src/GitVersion.App/CliHost.cs @@ -11,22 +11,19 @@ internal static HostApplicationBuilder CreateCliHostBuilder(string[] args) { var builder = Host.CreateApplicationBuilder(args); - builder.Services.AddModule(new GitVersionCoreModule()); - builder.Services.AddModule(new GitVersionLibGit2SharpModule()); - builder.Services.AddModule(new GitVersionBuildAgentsModule()); - builder.Services.AddModule(new GitVersionConfigurationModule()); - builder.Services.AddModule(new GitVersionOutputModule()); - builder.Services.AddModule(new GitVersionAppModule()); + RegisterGitVersionModules(builder.Services, args); - builder.Services.AddSingleton(sp => - { - var arguments = sp.GetRequiredService().ParseArguments(args); - var gitVersionOptions = arguments.ToOptions(); - return Options.Create(gitVersionOptions); - }); + return builder; + } - builder.Services.AddSingleton(); + private static void RegisterGitVersionModules(IServiceCollection services, string[] args) + { + services.AddModule(new GitVersionCoreModule()); + services.AddModule(new GitVersionBuildAgentsModule()); + services.AddModule(new GitVersionConfigurationModule()); + services.AddModule(new GitVersionOutputModule()); - return builder; + services.AddModule(new GitVersionLibGit2SharpModule()); + services.AddModule(new GitVersionAppModule(args)); } } diff --git a/src/GitVersion.App/GitVersionAppModule.cs b/src/GitVersion.App/GitVersionAppModule.cs index ead7c5caeb..6aff30e990 100644 --- a/src/GitVersion.App/GitVersionAppModule.cs +++ b/src/GitVersion.App/GitVersionAppModule.cs @@ -2,7 +2,7 @@ namespace GitVersion; -internal class GitVersionAppModule : IGitVersionModule +internal class GitVersionAppModule(params string[] args) : IGitVersionModule { public void RegisterTypes(IServiceCollection services) { @@ -12,5 +12,13 @@ public void RegisterTypes(IServiceCollection services) services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); + services.AddSingleton(); + + services.AddSingleton(sp => + { + var arguments = sp.GetRequiredService().ParseArguments(args); + var gitVersionOptions = arguments.ToOptions(); + return Options.Create(gitVersionOptions); + }); } } diff --git a/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs b/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs index 3cb42fe097..5605f8b6fb 100644 --- a/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs +++ b/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs @@ -1,6 +1,15 @@ +using GitVersion.Logging; + namespace GitVersion.MsBuild; -public class GitVersionMsBuildModule : IGitVersionModule +internal class GitVersionMsBuildModule(GitVersionTaskBase task) : IGitVersionModule { - public void RegisterTypes(IServiceCollection services) => services.AddSingleton(); + public void RegisterTypes(IServiceCollection services) + { + var gitVersionOptions = new GitVersionOptions { WorkingDirectory = task.SolutionDirectory }; + + services.AddSingleton(Options.Create(gitVersionOptions)); + services.AddSingleton(new MsBuildAdapter(task.Log)); + services.AddSingleton(); + } } diff --git a/src/GitVersion.MsBuild/GitVersionTasks.cs b/src/GitVersion.MsBuild/GitVersionTasks.cs index 003fa31f80..a91a5dd73f 100644 --- a/src/GitVersion.MsBuild/GitVersionTasks.cs +++ b/src/GitVersion.MsBuild/GitVersionTasks.cs @@ -1,9 +1,6 @@ using GitVersion.Agents; -using GitVersion.Configuration; -using GitVersion.Extensions; using GitVersion.Logging; using GitVersion.MsBuild.Tasks; -using GitVersion.Output; namespace GitVersion.MsBuild; @@ -64,18 +61,7 @@ private static ServiceProvider BuildServiceProvider(GitVersionTaskBase task) { var services = new ServiceCollection(); - var gitVersionOptions = new GitVersionOptions - { - WorkingDirectory = task.SolutionDirectory - }; - - services.AddSingleton(Options.Create(gitVersionOptions)); - services.AddModule(new GitVersionConfigurationModule()); - services.AddModule(new GitVersionCoreModule()); - services.AddModule(new GitVersionBuildAgentsModule()); - services.AddModule(new GitVersionOutputModule()); - services.AddModule(new GitVersionMsBuildModule()); - services.AddSingleton(new MsBuildAdapter(task.Log)); + MsBuildHost.RegisterGitVersionModules(services, task); var sp = services.BuildServiceProvider(); Configure(sp, task); diff --git a/src/GitVersion.MsBuild/MsBuildHost.cs b/src/GitVersion.MsBuild/MsBuildHost.cs new file mode 100644 index 0000000000..d609509a92 --- /dev/null +++ b/src/GitVersion.MsBuild/MsBuildHost.cs @@ -0,0 +1,19 @@ +using GitVersion.Agents; +using GitVersion.Configuration; +using GitVersion.Extensions; +using GitVersion.Output; + +namespace GitVersion.MsBuild; + +internal static class MsBuildHost +{ + internal static void RegisterGitVersionModules(IServiceCollection services, GitVersionTaskBase task) + { + services.AddModule(new GitVersionCoreModule()); + services.AddModule(new GitVersionBuildAgentsModule()); + services.AddModule(new GitVersionConfigurationModule()); + services.AddModule(new GitVersionOutputModule()); + + services.AddModule(new GitVersionMsBuildModule(task)); + } +} diff --git a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt index 000e4d9453..3482b74cb5 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt @@ -1,7 +1,4 @@ #nullable enable -GitVersion.MsBuild.GitVersionMsBuildModule -GitVersion.MsBuild.GitVersionMsBuildModule.GitVersionMsBuildModule() -> void -GitVersion.MsBuild.GitVersionMsBuildModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void GitVersion.MsBuild.GitVersionTaskBase GitVersion.MsBuild.GitVersionTaskBase.BuildEngine.get -> Microsoft.Build.Framework.IBuildEngine! GitVersion.MsBuild.GitVersionTaskBase.BuildEngine.set -> void From d62573b798d69ecfcae781d9a98d4fc93ea8dd27 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 30 Jan 2026 16:40:29 +0100 Subject: [PATCH 104/358] chore(sonarlint): Add SonarCloud project configuration Configure SonarLint to connect to the GitVersion project on SonarCloud for consistent code quality analysis. --- .sonarlint/GitVersion.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .sonarlint/GitVersion.json diff --git a/.sonarlint/GitVersion.json b/.sonarlint/GitVersion.json new file mode 100644 index 0000000000..9ec1ad5ae8 --- /dev/null +++ b/.sonarlint/GitVersion.json @@ -0,0 +1,5 @@ +{ + "sonarCloudOrganization": "gittools", + "projectKey": "GitTools_GitVersion", + "region": "EU" +} \ No newline at end of file From 60535dc2c3d38adc92d71f30683f4d5cb630f806 Mon Sep 17 00:00:00 2001 From: Sam Nelson Date: Fri, 30 Jan 2026 11:46:01 -0700 Subject: [PATCH 105/358] Fix memory leak in MainlineVersionStrategy - Remove ToArray() loop to prevent exponential array growth - Add caching to GetCommitsWasBranchedFrom to avoid redundant calculations - Fixes OOM kills on ADO agents with large repos --- .../MainlineVersionStrategy.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs index a7cd9a342d..5aa19e8470 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs @@ -21,6 +21,7 @@ internal sealed class MainlineVersionStrategy( private readonly ITaggedSemanticVersionService taggedSemanticVersionService = taggedSemanticVersionService.NotNull(); private readonly IRepositoryStore repositoryStore = repositoryStore.NotNull(); private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); + private readonly Dictionary>> commitsWasBranchedFromCache = new(); private GitVersionContext Context => contextLazy.Value; @@ -277,6 +278,15 @@ private bool IterateOverCommitsRecursive( private Dictionary> GetCommitsWasBranchedFrom( IBranch branch, params IBranch[] excludedBranches) { + // Create cache key from branch name and excluded branches + var cacheKey = $"{branch.Name}|{string.Join(",", excludedBranches.Select(b => b.Name).OrderBy(n => n))}"; + + // Return cached result if available + if (this.commitsWasBranchedFromCache.TryGetValue(cacheKey, out var cachedResult)) + { + return cachedResult; + } + Dictionary> result = []; var branchCommits = repositoryStore.FindCommitBranchesBranchedFrom( @@ -298,8 +308,9 @@ private bool IterateOverCommitsRecursive( throw new InvalidOperationException(); } - if ((branchConfiguration.IsMainBranch ?? Context.Configuration.IsMainBranch) != true) continue; - foreach (var _ in value.ToArray()) + // Fix: Just add the item once instead of duplicating for each existing item + // The original logic caused exponential growth: 1→2→4→8→16 with multiple branches + if ((branchConfiguration.IsMainBranch ?? Context.Configuration.IsMainBranch) == true) { value.Add(new(item, branchConfiguration)); } @@ -315,6 +326,10 @@ private bool IterateOverCommitsRecursive( { result[item.Key] = [.. item.Value.OrderByDescending(element => (element.Configuration.IsMainBranch ?? Context.Configuration.IsMainBranch) == true)]; } + + // Cache the result for future calls + this.commitsWasBranchedFromCache[cacheKey] = result; + return result; } From 8fae7d8e2b2e4e019ab1e1c655933fbeffc2d9b8 Mon Sep 17 00:00:00 2001 From: Sam Nelson Date: Fri, 30 Jan 2026 13:50:45 -0700 Subject: [PATCH 106/358] Use canonical identifier for cache key to avoid name collisions Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../VersionSearchStrategies/MainlineVersionStrategy.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs index 5aa19e8470..c1c7bdca45 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs @@ -278,8 +278,8 @@ private bool IterateOverCommitsRecursive( private Dictionary> GetCommitsWasBranchedFrom( IBranch branch, params IBranch[] excludedBranches) { - // Create cache key from branch name and excluded branches - var cacheKey = $"{branch.Name}|{string.Join(",", excludedBranches.Select(b => b.Name).OrderBy(n => n))}"; + // Create cache key from canonical branch name and canonical excluded branch names + var cacheKey = $"{branch.Name.Canonical}|{string.Join(",", excludedBranches.Select(b => b.Name.Canonical).OrderBy(n => n))}"; // Return cached result if available if (this.commitsWasBranchedFromCache.TryGetValue(cacheKey, out var cachedResult)) From e18539bc2ed986b549c52b1b09b293217583558b Mon Sep 17 00:00:00 2001 From: Sam Nelson Date: Fri, 30 Jan 2026 15:50:12 -0700 Subject: [PATCH 107/358] Remove redundant boolean literal --- .../VersionSearchStrategies/MainlineVersionStrategy.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs index c1c7bdca45..d103dbc0de 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs @@ -310,7 +310,7 @@ private bool IterateOverCommitsRecursive( // Fix: Just add the item once instead of duplicating for each existing item // The original logic caused exponential growth: 1→2→4→8→16 with multiple branches - if ((branchConfiguration.IsMainBranch ?? Context.Configuration.IsMainBranch) == true) + if (branchConfiguration.IsMainBranch ?? Context.Configuration.IsMainBranch) { value.Add(new(item, branchConfiguration)); } From 5d62b74751d273fdc6f582a5983b5efad5845f43 Mon Sep 17 00:00:00 2001 From: Sam Nelson Date: Fri, 30 Jan 2026 15:58:48 -0700 Subject: [PATCH 108/358] Properly handle nullable bool --- .../VersionSearchStrategies/MainlineVersionStrategy.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs index d103dbc0de..805dfae9f8 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs @@ -310,7 +310,7 @@ private bool IterateOverCommitsRecursive( // Fix: Just add the item once instead of duplicating for each existing item // The original logic caused exponential growth: 1→2→4→8→16 with multiple branches - if (branchConfiguration.IsMainBranch ?? Context.Configuration.IsMainBranch) + if ((branchConfiguration.IsMainBranch ?? Context.Configuration.IsMainBranch).GetValueOrDefault()) { value.Add(new(item, branchConfiguration)); } From 4364f3ec12a3ce914cdc3d570fb4d71d9f21f965 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 1 Feb 2026 11:38:03 +0100 Subject: [PATCH 109/358] docs(dotnet-dev): Add public API management guidelines Document the workflow and rules for tracking public API surface using `PublicApiAnalyzers` to ensure consistent API evolution. --- .vscode/skills/dotnet-dev/SKILL.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.vscode/skills/dotnet-dev/SKILL.md b/.vscode/skills/dotnet-dev/SKILL.md index feb65ac596..9e50bd77a9 100644 --- a/.vscode/skills/dotnet-dev/SKILL.md +++ b/.vscode/skills/dotnet-dev/SKILL.md @@ -245,3 +245,19 @@ dotnet test --filter "FullyQualifiedName=GitVersion.Core.Tests.MyTest" # Build with warnings as errors dotnet build ./src/GitVersion.slnx -warnaserror ``` + +## Public API Management + +This repository uses [Microsoft.CodeAnalysis.PublicApiAnalyzers](https://github.com/dotnet/roslyn-analyzers/blob/main/src/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) to track public API surface. + +### Rules + +- **`PublicAPI.Unshipped.txt`**: All new or modified public APIs go here +- **`PublicAPI.Shipped.txt`**: Only deletions are allowed; never add or modify entries directly + +### Workflow + +1. When adding new public APIs, they automatically get flagged and should be added to `PublicAPI.Unshipped.txt` +2. When modifying existing APIs, move the old entry from `PublicAPI.Shipped.txt` to `PublicAPI.Unshipped.txt` (marked as removed) and add the new signature to `PublicAPI.Unshipped.txt` +3. Only remove entries from `PublicAPI.Shipped.txt` when an API is being deleted +4. During release, unshipped APIs get moved to shipped via the `mark-shipped.ps1` script From ef7c4734dcabc8f866e8de1489521d7986e51d9d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 12:58:41 +0000 Subject: [PATCH 110/358] (deps): Bump JsonSchema.Net.Generation from 6.0.0 to 7.0.0 (#4811) --- updated-dependencies: - dependency-name: JsonSchema.Net.Generation dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 3116cfc049..23f6ee0a8d 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -20,7 +20,7 @@ - + From b01402c5bf63b28d43695ff29ded28512c1f3251 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 1 Feb 2026 14:20:52 +0100 Subject: [PATCH 111/358] ci(mergify): Change default merge method to merge Preserve full commit history from pull request branches. --- .github/mergify.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/mergify.yml b/.github/mergify.yml index 7a10ae99d7..7acff9a92e 100644 --- a/.github/mergify.yml +++ b/.github/mergify.yml @@ -28,7 +28,7 @@ pull_request_rules: # 3. Use a Queue to handle the "up-to-date" requirement automatically queue_rules: - name: default - merge_method: squash + merge_method: merge queue_conditions: - check-success=DotNet Format - check-success=Release From 9a3821a9cf75b7a666dc8f9892e0077e0aad8cf2 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 1 Feb 2026 14:30:59 +0100 Subject: [PATCH 112/358] feat(skills): Add git-commit skill; move skill docs Relocates existing skill documentation to the .github/skills directory. --- .../skills/dotnet-dev/SKILL.md | 22 +-- .github/skills/git-commit/SKILL.md | 125 ++++++++++++++++++ .../skills/nuget-manager/SKILL.md | 45 ++++--- 3 files changed, 166 insertions(+), 26 deletions(-) rename {.vscode => .github}/skills/dotnet-dev/SKILL.md (91%) create mode 100644 .github/skills/git-commit/SKILL.md rename {.vscode => .github}/skills/nuget-manager/SKILL.md (57%) diff --git a/.vscode/skills/dotnet-dev/SKILL.md b/.github/skills/dotnet-dev/SKILL.md similarity index 91% rename from .vscode/skills/dotnet-dev/SKILL.md rename to .github/skills/dotnet-dev/SKILL.md index 9e50bd77a9..a7a83ab48f 100644 --- a/.vscode/skills/dotnet-dev/SKILL.md +++ b/.github/skills/dotnet-dev/SKILL.md @@ -53,13 +53,14 @@ dotnet add ./src/ProjectName/ProjectName.csproj package PackageName ### Directory.Packages.props Structure ```xml + - - true - - - - + + true + + + + ``` @@ -73,7 +74,7 @@ dotnet add ./src/ProjectName/ProjectName.csproj package PackageName ### Key Projects | Project | Purpose | -| -------------------------- | ------------------------------------- | +|----------------------------|---------------------------------------| | `GitVersion.Core` | Core version calculation logic | | `GitVersion.App` | CLI application | | `GitVersion.Configuration` | Configuration file handling | @@ -248,7 +249,9 @@ dotnet build ./src/GitVersion.slnx -warnaserror ## Public API Management -This repository uses [Microsoft.CodeAnalysis.PublicApiAnalyzers](https://github.com/dotnet/roslyn-analyzers/blob/main/src/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) to track public API surface. +This repository +uses [Microsoft.CodeAnalysis.PublicApiAnalyzers](https://github.com/dotnet/roslyn-analyzers/blob/main/src/PublicApiAnalyzers/PublicApiAnalyzers.Help.md) +to track public API surface. ### Rules @@ -258,6 +261,7 @@ This repository uses [Microsoft.CodeAnalysis.PublicApiAnalyzers](https://github. ### Workflow 1. When adding new public APIs, they automatically get flagged and should be added to `PublicAPI.Unshipped.txt` -2. When modifying existing APIs, move the old entry from `PublicAPI.Shipped.txt` to `PublicAPI.Unshipped.txt` (marked as removed) and add the new signature to `PublicAPI.Unshipped.txt` +2. When modifying existing APIs, move the old entry from `PublicAPI.Shipped.txt` to `PublicAPI.Unshipped.txt` (marked as + removed) and add the new signature to `PublicAPI.Unshipped.txt` 3. Only remove entries from `PublicAPI.Shipped.txt` when an API is being deleted 4. During release, unshipped APIs get moved to shipped via the `mark-shipped.ps1` script diff --git a/.github/skills/git-commit/SKILL.md b/.github/skills/git-commit/SKILL.md new file mode 100644 index 0000000000..a02051dc60 --- /dev/null +++ b/.github/skills/git-commit/SKILL.md @@ -0,0 +1,125 @@ +--- +name: git-commit +description: 'Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping' +license: MIT +allowed-tools: Bash +--- + +# Git Commit with Conventional Commits + +## Overview + +Create standardized, semantic git commits using the Conventional Commits specification. Analyze the actual diff to +determine appropriate type, scope, and message. + +## Conventional Commit Format + +``` +[optional scope]: + +[optional body] + +[optional footer(s)] +``` + +## Commit Types + +| Type | Purpose | +|------------|--------------------------------| +| `feat` | New feature | +| `fix` | Bug fix | +| `docs` | Documentation only | +| `style` | Formatting/style (no logic) | +| `refactor` | Code refactor (no feature/fix) | +| `perf` | Performance improvement | +| `test` | Add/update tests | +| `build` | Build system/dependencies | +| `ci` | CI/config changes | +| `chore` | Maintenance/misc | +| `revert` | Revert commit | + +## Breaking Changes + +``` +# Exclamation mark after type/scope +feat!: remove deprecated endpoint + +# BREAKING CHANGE footer +feat: allow config to extend other configs + +BREAKING CHANGE: `extends` key behavior changed +``` + +## Workflow + +### 1. Analyze Diff + +```bash +# If files are staged, use staged diff +git diff --staged + +# If nothing staged, use working tree diff +git diff + +# Also check status +git status --porcelain +``` + +### 2. Stage Files (if needed) + +If nothing is staged, or you want to group changes differently: + +```bash +# Stage specific files +git add path/to/file1 path/to/file2 + +# Stage by pattern +git add *.test.* +git add src/components/* + +# Interactive staging +git add -p +``` + +**Never commit secrets** (.env, credentials.json, private keys). + +### 3. Generate Commit Message + +Analyze the diff to determine: + +- **Type**: What kind of change is this? +- **Scope**: What area/module is affected? +- **Description**: One-line summary of what changed (present tense, imperative mood, <72 chars) + +### 4. Execute Commit + +```bash +# Single line +git commit -m "[scope]: " + +# Multi-line with body/footer +git commit -m "$(cat <<'EOF' +[scope]: + + + + +EOF +)" +``` + +## Best Practices + +- One logical change per commit +- Present tense: "add" not "added" +- Imperative mood: "fix bug" not "fixes bug" +- Reference issues: `Closes #123`, `Refs #456` +- Keep the description under 72 characters + +## Git Safety Protocol + +- NEVER update git config +- NEVER run destructive commands (--force, hard reset) without an explicit request +- NEVER skip hooks (--no-verify) unless user asks +- NEVER force push to main/master +- If the commit fails due to hooks, fix and create a NEW commit (don't amend) diff --git a/.vscode/skills/nuget-manager/SKILL.md b/.github/skills/nuget-manager/SKILL.md similarity index 57% rename from .vscode/skills/nuget-manager/SKILL.md rename to .github/skills/nuget-manager/SKILL.md index d643749c8c..f32d018452 100644 --- a/.vscode/skills/nuget-manager/SKILL.md +++ b/.github/skills/nuget-manager/SKILL.md @@ -7,7 +7,9 @@ description: 'Manage NuGet packages in .NET projects/solutions. Use this skill w ## Overview -This skill ensures consistent and safe management of NuGet packages across .NET projects. It prioritizes using the `dotnet` CLI to maintain project integrity and enforces a strict verification and restoration workflow for version updates. +This skill ensures consistent and safe management of NuGet packages across .NET projects. It prioritizes using the +`dotnet` CLI to maintain project integrity and enforces a strict verification and restoration workflow for version +updates. ## Prerequisites @@ -17,9 +19,10 @@ This skill ensures consistent and safe management of NuGet packages across .NET ## Core Rules -1. **NEVER** directly edit `.csproj`, `.props`, or `Directory.Packages.props` files to **add** or **remove** packages. Always use `dotnet add package` and `dotnet remove package` commands. -2. **DIRECT EDITING** is ONLY permitted for **changing versions** of existing packages. -3. **VERSION UPDATES** must follow the mandatory workflow: +1. **NEVER** directly edit `.csproj`, `.props`, or `Directory.Packages.props` files to **add** or **remove** packages. + Always use `dotnet add package` and `dotnet remove package` commands. +2. **DIRECT EDITING** is ONLY permitted for **changing versions** of existing packages. +3. **VERSION UPDATES** must follow the mandatory workflow: - Verify the target version exists on NuGet. - Determine if versions are managed per-project (`.csproj`) or centrally (`Directory.Packages.props`). - Update the version string in the appropriate file. @@ -28,41 +31,49 @@ This skill ensures consistent and safe management of NuGet packages across .NET ## Workflows ### Adding a Package + Use `dotnet add [] package [--version ]`. Example: `dotnet add src/MyProject/MyProject.csproj package Newtonsoft.Json` ### Removing a Package + Use `dotnet remove [] package `. Example: `dotnet remove src/MyProject/MyProject.csproj package Newtonsoft.Json` ### Updating Package Versions + When updating a version, follow these steps: -1. **Verify Version Existence**: - Check if the version exists using the `dotnet package search` command with exact match and JSON formatting. - Using `jq`: - `dotnet package search --exact-match --format json | jq -e '.searchResult[].packages[] | select(.version == "")'` - Using PowerShell: - `(dotnet package search --exact-match --format json | ConvertFrom-Json).searchResult.packages | Where-Object { $_.version -eq "" }` +1. **Verify Version Existence**: + Check if the version exists using the `dotnet package search` command with exact match and JSON formatting. + Using `jq`: + `dotnet package search --exact-match --format json | jq -e '.searchResult[].packages[] | select(.version == "")'` + Using PowerShell: + `(dotnet package search --exact-match --format json | ConvertFrom-Json).searchResult.packages | Where-Object { $_.version -eq "" }` -2. **Determine Version Management**: - - Search for `Directory.Packages.props` in the solution root. If present, versions should be managed there via ``. +2. **Determine Version Management**: + - Search for `Directory.Packages.props` in the solution root. If present, versions should be managed there via + ``. - If absent, check individual `.csproj` files for ``. -3. **Apply Changes**: - Modify the identified file with the new version string. +3. **Apply Changes**: + Modify the identified file with the new version string. -4. **Verify Stability**: - Run `dotnet restore` on the project or solution. If errors occur, revert the change and investigate. +4. **Verify Stability**: + Run `dotnet restore` on the project or solution. If errors occur, revert the change and investigate. ## Examples ### User: "Add Serilog to the WebApi project" + **Action**: Execute `dotnet add src/WebApi/WebApi.csproj package Serilog`. ### User: "Update Newtonsoft.Json to 13.0.3 in the whole solution" + **Action**: -1. Verify 13.0.3 exists: `dotnet package search Newtonsoft.Json --exact-match --format json` (and parse output to confirm "13.0.3" is present). + +1. Verify 13.0.3 exists: `dotnet package search Newtonsoft.Json --exact-match --format json` (and parse output to + confirm "13.0.3" is present). 2. Find where it's defined (e.g., `Directory.Packages.props`). 3. Edit the file to update the version. 4. Run `dotnet restore`. From bd906366262c54d090c7b5a7bf97f6749c276bde Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 31 Jan 2026 07:50:04 +0000 Subject: [PATCH 113/358] Add VersionSourceDistance and deprecate CommitsSinceVersionSource Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- docs/input/docs/reference/variables.md | 4 +++- .../Helpers/TestableGitVersionVariables.cs | 1 + src/GitVersion.Core/OutputVariables/GitVersionVariables.cs | 4 ++++ src/GitVersion.Core/PublicAPI.Shipped.txt | 7 +++++-- .../SemanticVersioning/SemanticVersionFormatValues.cs | 3 +++ src/GitVersion.Core/VersionCalculation/VariableProvider.cs | 3 +++ src/GitVersion.MsBuild/PublicAPI.Shipped.txt | 2 ++ src/GitVersion.MsBuild/Tasks/GetVersion.cs | 4 ++++ .../Serializer/VersionVariablesJsonModel.cs | 4 ++++ 9 files changed, 29 insertions(+), 3 deletions(-) diff --git a/docs/input/docs/reference/variables.md b/docs/input/docs/reference/variables.md index 158891797a..e6abcbaf57 100644 --- a/docs/input/docs/reference/variables.md +++ b/docs/input/docs/reference/variables.md @@ -34,6 +34,7 @@ what is available. For the `release/3.0.0` branch of GitVersion it shows: "ShortSha": "28c8531", "VersionSourceSha": "28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", "CommitsSinceVersionSource": 7, + "VersionSourceDistance": 7, "CommitDate": "2021-12-31", "UncommittedChanges": 0 } @@ -65,7 +66,8 @@ Each property of the above JSON document is described in the below table. | `Sha` | The SHA of the Git commit. | | `ShortSha` | The `Sha` limited to 7 characters. | | `VersionSourceSha` | The SHA of the commit used as version source. | -| `CommitsSinceVersionSource` | The number of commits since the version source. | +| `CommitsSinceVersionSource` | (Deprecated: use `VersionSourceDistance` instead) The number of commits since the version source. | +| `VersionSourceDistance` | The number of commits since the version source. | | `CommitDate` | The ISO-8601 formatted date of the commit identified by `Sha`. | | `UncommittedChanges` | The number of uncommitted changes present in the repository. | diff --git a/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs b/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs index 5670ca86a3..0237f5b4ec 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs @@ -26,4 +26,5 @@ internal record TestableGitVersionVariables() : GitVersionVariables("", "", "", "", + "", ""); diff --git a/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs b/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs index 53a8b55172..b594f74b1a 100644 --- a/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs +++ b/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs @@ -23,7 +23,9 @@ public record GitVersionVariables(string Major, string? InformationalVersion, string? CommitDate, string? VersionSourceSha, + [property: Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] string? CommitsSinceVersionSource, + string? VersionSourceDistance, string? UncommittedChanges) : IEnumerable> { internal static readonly List AvailableVariables = @@ -52,6 +54,7 @@ public record GitVersionVariables(string Major, nameof(CommitDate), nameof(VersionSourceSha), nameof(CommitsSinceVersionSource), + nameof(VersionSourceDistance), nameof(UncommittedChanges) ]; @@ -81,6 +84,7 @@ public record GitVersionVariables(string Major, { nameof(CommitDate), CommitDate }, { nameof(VersionSourceSha), VersionSourceSha }, { nameof(CommitsSinceVersionSource), CommitsSinceVersionSource }, + { nameof(VersionSourceDistance), VersionSourceDistance }, { nameof(UncommittedChanges), UncommittedChanges } }; diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index 286d1d2964..1b030987e6 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -485,7 +485,7 @@ GitVersion.OutputVariables.GitVersionVariables.CommitDate.get -> string? GitVersion.OutputVariables.GitVersionVariables.CommitDate.init -> void GitVersion.OutputVariables.GitVersionVariables.CommitsSinceVersionSource.get -> string? GitVersion.OutputVariables.GitVersionVariables.CommitsSinceVersionSource.init -> void -GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string! Major, out string! Minor, out string! Patch, out string? BuildMetaData, out string? FullBuildMetaData, out string? BranchName, out string? EscapedBranchName, out string? Sha, out string? ShortSha, out string! MajorMinorPatch, out string! SemVer, out string! FullSemVer, out string? AssemblySemVer, out string? AssemblySemFileVer, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string! WeightedPreReleaseNumber, out string? InformationalVersion, out string? CommitDate, out string? VersionSourceSha, out string? CommitsSinceVersionSource, out string? UncommittedChanges) -> void +GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string! Major, out string! Minor, out string! Patch, out string? BuildMetaData, out string? FullBuildMetaData, out string? BranchName, out string? EscapedBranchName, out string? Sha, out string? ShortSha, out string! MajorMinorPatch, out string! SemVer, out string! FullSemVer, out string? AssemblySemVer, out string? AssemblySemFileVer, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string! WeightedPreReleaseNumber, out string? InformationalVersion, out string? CommitDate, out string? VersionSourceSha, out string? CommitsSinceVersionSource, out string? VersionSourceDistance, out string? UncommittedChanges) -> void GitVersion.OutputVariables.GitVersionVariables.EscapedBranchName.get -> string? GitVersion.OutputVariables.GitVersionVariables.EscapedBranchName.init -> void GitVersion.OutputVariables.GitVersionVariables.FullBuildMetaData.get -> string? @@ -494,7 +494,7 @@ GitVersion.OutputVariables.GitVersionVariables.FullSemVer.get -> string! GitVersion.OutputVariables.GitVersionVariables.FullSemVer.init -> void GitVersion.OutputVariables.GitVersionVariables.GetEnumerator() -> System.Collections.Generic.IEnumerator>! GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(GitVersion.OutputVariables.GitVersionVariables! original) -> void -GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string! Major, string! Minor, string! Patch, string? BuildMetaData, string? FullBuildMetaData, string? BranchName, string? EscapedBranchName, string? Sha, string? ShortSha, string! MajorMinorPatch, string! SemVer, string! FullSemVer, string? AssemblySemVer, string? AssemblySemFileVer, string? PreReleaseTag, string? PreReleaseTagWithDash, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string! WeightedPreReleaseNumber, string? InformationalVersion, string? CommitDate, string? VersionSourceSha, string? CommitsSinceVersionSource, string? UncommittedChanges) -> void +GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string! Major, string! Minor, string! Patch, string? BuildMetaData, string? FullBuildMetaData, string? BranchName, string? EscapedBranchName, string? Sha, string? ShortSha, string! MajorMinorPatch, string! SemVer, string! FullSemVer, string? AssemblySemVer, string? AssemblySemFileVer, string? PreReleaseTag, string? PreReleaseTagWithDash, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string! WeightedPreReleaseNumber, string? InformationalVersion, string? CommitDate, string? VersionSourceSha, string? CommitsSinceVersionSource, string? VersionSourceDistance, string? UncommittedChanges) -> void GitVersion.OutputVariables.GitVersionVariables.InformationalVersion.get -> string? GitVersion.OutputVariables.GitVersionVariables.InformationalVersion.init -> void GitVersion.OutputVariables.GitVersionVariables.Major.get -> string! @@ -526,6 +526,8 @@ GitVersion.OutputVariables.GitVersionVariables.UncommittedChanges.get -> string? GitVersion.OutputVariables.GitVersionVariables.UncommittedChanges.init -> void GitVersion.OutputVariables.GitVersionVariables.VersionSourceSha.get -> string? GitVersion.OutputVariables.GitVersionVariables.VersionSourceSha.init -> void +GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.get -> string? +GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.init -> void GitVersion.OutputVariables.GitVersionVariables.WeightedPreReleaseNumber.get -> string! GitVersion.OutputVariables.GitVersionVariables.WeightedPreReleaseNumber.init -> void GitVersion.OutputVariables.IVersionVariableSerializer @@ -628,6 +630,7 @@ GitVersion.SemanticVersionFormatValues.Sha.get -> string? GitVersion.SemanticVersionFormatValues.ShortSha.get -> string? GitVersion.SemanticVersionFormatValues.UncommittedChanges.get -> string! GitVersion.SemanticVersionFormatValues.VersionSourceSha.get -> string? +GitVersion.SemanticVersionFormatValues.VersionSourceDistance.get -> string! GitVersion.SemanticVersionFormatValues.WeightedPreReleaseNumber.get -> string! GitVersion.SemanticVersionPreReleaseTag GitVersion.SemanticVersionPreReleaseTag.CompareTo(GitVersion.SemanticVersionPreReleaseTag? other) -> int diff --git a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs index 981a45aa8a..22eaecf1ab 100644 --- a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs +++ b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs @@ -54,7 +54,10 @@ public class SemanticVersionFormatValues(SemanticVersion semver, IGitVersionConf public string? VersionSourceSha => semver.BuildMetaData.VersionSourceSha; + [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] public string CommitsSinceVersionSource => semver.BuildMetaData.CommitsSinceVersionSource.ToString(CultureInfo.InvariantCulture); + public string VersionSourceDistance => semver.BuildMetaData.CommitsSinceVersionSource.ToString(CultureInfo.InvariantCulture); + public string UncommittedChanges => semver.BuildMetaData.UncommittedChanges.ToString(CultureInfo.InvariantCulture); } diff --git a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs index 424c91711b..ff2af83173 100644 --- a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs @@ -63,7 +63,10 @@ public GitVersionVariables GetVariablesFor( informationalVersion, semverFormatValues.CommitDate, semverFormatValues.VersionSourceSha, +#pragma warning disable CS0618 // Type or member is obsolete semverFormatValues.CommitsSinceVersionSource, +#pragma warning restore CS0618 // Type or member is obsolete + semverFormatValues.VersionSourceDistance, semverFormatValues.UncommittedChanges ); } diff --git a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt index 3482b74cb5..c69ff1faba 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt @@ -70,6 +70,8 @@ GitVersion.MsBuild.Tasks.GetVersion.UncommittedChanges.get -> string! GitVersion.MsBuild.Tasks.GetVersion.UncommittedChanges.set -> void GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSha.get -> string! GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSha.set -> void +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.get -> string! +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.set -> void GitVersion.MsBuild.Tasks.GetVersion.WeightedPreReleaseNumber.get -> string! GitVersion.MsBuild.Tasks.GetVersion.WeightedPreReleaseNumber.set -> void GitVersion.MsBuild.Tasks.UpdateAssemblyInfo diff --git a/src/GitVersion.MsBuild/Tasks/GetVersion.cs b/src/GitVersion.MsBuild/Tasks/GetVersion.cs index 2a3e695a99..99fb5c835f 100644 --- a/src/GitVersion.MsBuild/Tasks/GetVersion.cs +++ b/src/GitVersion.MsBuild/Tasks/GetVersion.cs @@ -74,8 +74,12 @@ public class GetVersion : GitVersionTaskBase public string VersionSourceSha { get; set; } [Output] + [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] public string CommitsSinceVersionSource { get; set; } + [Output] + public string VersionSourceDistance { get; set; } + [Output] public string UncommittedChanges { get; set; } } diff --git a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs index 89d32b254b..d74a59c597 100644 --- a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs +++ b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs @@ -20,8 +20,12 @@ internal class VersionVariablesJsonModel public string? CommitDate { get; set; } [JsonPropertyDescription("The number of commits since the version source.")] + [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] public int? CommitsSinceVersionSource { get; set; } + [JsonPropertyDescription("The number of commits since the version source.")] + public int? VersionSourceDistance { get; set; } + [JsonPropertyDescription("Equal to BranchName, but with / replaced with -.")] public string? EscapedBranchName { get; set; } From 0f7458ee6b504938c508e639c7c9622bda45f7fd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 31 Jan 2026 07:58:19 +0000 Subject: [PATCH 114/358] Fix VersionSourceDistance property ordering in JSON model Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- .../Approved/JsonVersionBuilderTests.Json.approved.txt | 1 + ...lesInContinuousDeliveryModeForFeatureBranch.approved.txt | 1 + ...orFeatureBranchWithCustomAssemblyInfoFormat.approved.txt | 1 + ...iablesInContinuousDeliveryModeForPreRelease.approved.txt | 1 + ...sVariablesInContinuousDeliveryModeForStable.approved.txt | 1 + ...usDeploymentModeForMainBranchWithEmptyLabel.approved.txt | 1 + ...blesInContinuousDeploymentModeForPreRelease.approved.txt | 1 + ...ariablesInContinuousDeploymentModeForStable.approved.txt | 1 + ...ymentModeForStableWhenCurrentCommitIsTagged.approved.txt | 1 + .../Approved/WixFileTests.UpdateWixVersionFile.approved.txt | 1 + ...s.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt | 1 + ...tVersionInfoGeneratorTests.ShouldCreateFile.approved.txt | 1 + ...ts.ShouldProperlyOutputNamespaceDeclaration.approved.txt | 1 + ...tVersionInfoGeneratorTests.ShouldCreateFile.approved.txt | 1 + ...ts.ShouldProperlyOutputNamespaceDeclaration.approved.txt | 1 + ...tVersionInfoGeneratorTests.ShouldCreateFile.approved.txt | 1 + ...ts.ShouldProperlyOutputNamespaceDeclaration.approved.txt | 1 + .../Serializer/VersionVariablesJsonModel.cs | 6 +++--- 18 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt index 24061d9bfe..657aea4857 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt @@ -23,5 +23,6 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceSha": "versionSourceSha", + "VersionSourceDistance": 5, "WeightedPreReleaseNumber": 4 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt index 2656e2afe4..957e7025d2 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt @@ -23,5 +23,6 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceSha": "versionSourceSha", + "VersionSourceDistance": 5, "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt index 55166aebe6..87c8348c33 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt @@ -23,5 +23,6 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceSha": "versionSourceSha", + "VersionSourceDistance": 5, "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt index 4cc8738920..49becbd974 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt @@ -23,5 +23,6 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceSha": "versionSourceSha", + "VersionSourceDistance": 5, "WeightedPreReleaseNumber": 4 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt index 0b9c98e18a..9391818e59 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt @@ -23,5 +23,6 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceSha": "versionSourceSha", + "VersionSourceDistance": 5, "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt index f6bd57ef8f..b6ce34c328 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt @@ -23,5 +23,6 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceSha": "versionSourceSha", + "VersionSourceDistance": 5, "WeightedPreReleaseNumber": 55009 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt index 34ec2c613b..3d1f743058 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt @@ -23,5 +23,6 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceSha": "versionSourceSha", + "VersionSourceDistance": 5, "WeightedPreReleaseNumber": 8 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt index de207b299c..e863d06cb0 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt @@ -23,5 +23,6 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceSha": "versionSourceSha", + "VersionSourceDistance": 5, "WeightedPreReleaseNumber": 5 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt index 330accf021..2021304b0a 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt @@ -23,5 +23,6 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceSha": "versionSourceSha", + "VersionSourceDistance": 5, "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt index d935478f68..b57561da71 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt @@ -24,5 +24,6 @@ + \ No newline at end of file diff --git a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt index d935478f68..b57561da71 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt @@ -24,5 +24,6 @@ + \ No newline at end of file diff --git a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 1289bd4dc8..62c3e47812 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -36,5 +36,6 @@ static class GitVersionInformation public const string ShortSha = "commitShortSha"; public const string UncommittedChanges = "0"; public const string VersionSourceSha = "versionSourceSha"; + public const string VersionSourceDistance = "5"; public const string WeightedPreReleaseNumber = "4"; } diff --git a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 8cb6fbe737..b2a4098d17 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -38,6 +38,7 @@ namespace My.Custom.Namespace public const string ShortSha = "commitShortSha"; public const string UncommittedChanges = "0"; public const string VersionSourceSha = "versionSourceSha"; + public const string VersionSourceDistance = "5"; public const string WeightedPreReleaseNumber = "4"; } } diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index f653c20b31..f6ddbb9f29 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -38,4 +38,5 @@ type GitVersionInformation = static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" static member VersionSourceSha = "versionSourceSha" + public const string VersionSourceDistance = "5"; static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index ac564fb232..768e2c0da4 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -38,4 +38,5 @@ type GitVersionInformation = static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" static member VersionSourceSha = "versionSourceSha" + public const string VersionSourceDistance = "5"; static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 91cb09fa24..8e01060110 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -39,6 +39,7 @@ Namespace Global Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" Public Shared VersionSourceSha As String = "versionSourceSha" + public const string VersionSourceDistance = "5"; Public Shared WeightedPreReleaseNumber As String = "4" End Class diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index f1fc481aaa..645e095903 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -39,6 +39,7 @@ Namespace My.Custom.Namespace Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" Public Shared VersionSourceSha As String = "versionSourceSha" + public const string VersionSourceDistance = "5"; Public Shared WeightedPreReleaseNumber As String = "4" End Class diff --git a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs index d74a59c597..72c1e859c4 100644 --- a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs +++ b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs @@ -23,9 +23,6 @@ internal class VersionVariablesJsonModel [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] public int? CommitsSinceVersionSource { get; set; } - [JsonPropertyDescription("The number of commits since the version source.")] - public int? VersionSourceDistance { get; set; } - [JsonPropertyDescription("Equal to BranchName, but with / replaced with -.")] public string? EscapedBranchName { get; set; } @@ -77,6 +74,9 @@ internal class VersionVariablesJsonModel [JsonPropertyDescription("The number of uncommitted changes present in the repository.")] public int? UncommittedChanges { get; set; } + [JsonPropertyDescription("The number of commits since the version source.")] + public int? VersionSourceDistance { get; set; } + [JsonPropertyDescription("The SHA of the commit used as version source.")] public string? VersionSourceSha { get; set; } From 4aa2a7bbe61f3440c62bcfe19f230bbc3cb79691 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 31 Jan 2026 08:00:33 +0000 Subject: [PATCH 115/358] Fix VB and F# approved test file syntax Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- .../GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt | 2 +- ...rTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt | 2 +- .../GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt | 2 +- ...rTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index f6ddbb9f29..98e9fc1464 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -38,5 +38,5 @@ type GitVersionInformation = static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" static member VersionSourceSha = "versionSourceSha" - public const string VersionSourceDistance = "5"; + static member VersionSourceDistance = "5" static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 768e2c0da4..40340d9b09 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -38,5 +38,5 @@ type GitVersionInformation = static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" static member VersionSourceSha = "versionSourceSha" - public const string VersionSourceDistance = "5"; + static member VersionSourceDistance = "5" static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 8e01060110..d06a1d70d7 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -39,7 +39,7 @@ Namespace Global Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" Public Shared VersionSourceSha As String = "versionSourceSha" - public const string VersionSourceDistance = "5"; + Public Shared VersionSourceDistance As String = "5" Public Shared WeightedPreReleaseNumber As String = "4" End Class diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 645e095903..1a09a5df9a 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -39,7 +39,7 @@ Namespace My.Custom.Namespace Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" Public Shared VersionSourceSha As String = "versionSourceSha" - public const string VersionSourceDistance = "5"; + Public Shared VersionSourceDistance As String = "5" Public Shared WeightedPreReleaseNumber As String = "4" End Class From c4d0bca67f8a2a0cdafe56bb349356c3d2a95068 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 31 Jan 2026 10:47:49 +0000 Subject: [PATCH 116/358] Fix test failures: disable CI build for test projects and correct property ordering Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj | 5 +++++ src/GitVersion.Output.Tests/GitVersion.Output.Tests.csproj | 5 +++++ .../Approved/WixFileTests.UpdateWixVersionFile.approved.txt | 2 +- ...s.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt | 2 +- ...tVersionInfoGeneratorTests.ShouldCreateFile.approved.txt | 2 +- ...ts.ShouldProperlyOutputNamespaceDeclaration.approved.txt | 2 +- ...tVersionInfoGeneratorTests.ShouldCreateFile.approved.txt | 2 +- ...ts.ShouldProperlyOutputNamespaceDeclaration.approved.txt | 2 +- ...tVersionInfoGeneratorTests.ShouldCreateFile.approved.txt | 2 +- ...ts.ShouldProperlyOutputNamespaceDeclaration.approved.txt | 2 +- .../Serializer/VersionVariablesJsonModel.cs | 6 +++--- 11 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj index 446ac51a69..48e037b2fa 100644 --- a/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj +++ b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj @@ -24,4 +24,9 @@ + + + + false + diff --git a/src/GitVersion.Output.Tests/GitVersion.Output.Tests.csproj b/src/GitVersion.Output.Tests/GitVersion.Output.Tests.csproj index d54414c314..91be0a1416 100644 --- a/src/GitVersion.Output.Tests/GitVersion.Output.Tests.csproj +++ b/src/GitVersion.Output.Tests/GitVersion.Output.Tests.csproj @@ -4,4 +4,9 @@ + + + + false + diff --git a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt index b57561da71..7944b3643f 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt @@ -23,7 +23,7 @@ - + \ No newline at end of file diff --git a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt index b57561da71..7944b3643f 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt @@ -23,7 +23,7 @@ - + \ No newline at end of file diff --git a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 62c3e47812..0fa7320008 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -35,7 +35,7 @@ static class GitVersionInformation public const string Sha = "commitSha"; public const string ShortSha = "commitShortSha"; public const string UncommittedChanges = "0"; - public const string VersionSourceSha = "versionSourceSha"; public const string VersionSourceDistance = "5"; + public const string VersionSourceSha = "versionSourceSha"; public const string WeightedPreReleaseNumber = "4"; } diff --git a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index b2a4098d17..1e0c4b4c5a 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -37,8 +37,8 @@ namespace My.Custom.Namespace public const string Sha = "commitSha"; public const string ShortSha = "commitShortSha"; public const string UncommittedChanges = "0"; + public const string VersionSourceDistance = "5"; public const string VersionSourceSha = "versionSourceSha"; - public const string VersionSourceDistance = "5"; public const string WeightedPreReleaseNumber = "4"; } } diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 98e9fc1464..42634dd993 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -37,6 +37,6 @@ type GitVersionInformation = static member Sha = "commitSha" static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" - static member VersionSourceSha = "versionSourceSha" static member VersionSourceDistance = "5" + static member VersionSourceSha = "versionSourceSha" static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 40340d9b09..354146d95e 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -37,6 +37,6 @@ type GitVersionInformation = static member Sha = "commitSha" static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" - static member VersionSourceSha = "versionSourceSha" static member VersionSourceDistance = "5" + static member VersionSourceSha = "versionSourceSha" static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index d06a1d70d7..2c704a9e3c 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -38,8 +38,8 @@ Namespace Global Public Shared Sha As String = "commitSha" Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" - Public Shared VersionSourceSha As String = "versionSourceSha" Public Shared VersionSourceDistance As String = "5" + Public Shared VersionSourceSha As String = "versionSourceSha" Public Shared WeightedPreReleaseNumber As String = "4" End Class diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 1a09a5df9a..721167f539 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -38,8 +38,8 @@ Namespace My.Custom.Namespace Public Shared Sha As String = "commitSha" Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" - Public Shared VersionSourceSha As String = "versionSourceSha" Public Shared VersionSourceDistance As String = "5" + Public Shared VersionSourceSha As String = "versionSourceSha" Public Shared WeightedPreReleaseNumber As String = "4" End Class diff --git a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs index 72c1e859c4..196328ea07 100644 --- a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs +++ b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs @@ -74,12 +74,12 @@ internal class VersionVariablesJsonModel [JsonPropertyDescription("The number of uncommitted changes present in the repository.")] public int? UncommittedChanges { get; set; } - [JsonPropertyDescription("The number of commits since the version source.")] - public int? VersionSourceDistance { get; set; } - [JsonPropertyDescription("The SHA of the commit used as version source.")] public string? VersionSourceSha { get; set; } + [JsonPropertyDescription("The number of commits since the version source.")] + public int? VersionSourceDistance { get; set; } + [JsonPropertyDescription("A summation of branch specific pre-release-weight and the PreReleaseNumber. Can be used to obtain a monotonically increasing version number across the branches.")] public int? WeightedPreReleaseNumber { get; set; } } From 87096f443542b50b1f58627f8a590f861372f500 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 1 Feb 2026 09:26:46 +0000 Subject: [PATCH 117/358] Add VersionSourceDistance property to build script GitVersion model Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- build/common/Addins/GitVersion/GitVersion.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build/common/Addins/GitVersion/GitVersion.cs b/build/common/Addins/GitVersion/GitVersion.cs index a6fd1d1bc1..b3dd485ab2 100644 --- a/build/common/Addins/GitVersion/GitVersion.cs +++ b/build/common/Addins/GitVersion/GitVersion.cs @@ -95,6 +95,11 @@ public sealed class GitVersion /// public int? CommitsSinceVersionSource { get; set; } + /// + /// Gets or sets the version source distance. + /// + public int? VersionSourceDistance { get; set; } + /// /// Gets or sets the commit date. /// From fe3617c80bd698f114414b65e0dde614053a62f3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 1 Feb 2026 10:19:14 +0000 Subject: [PATCH 118/358] Add VersionSourceDistance usage alongside CommitsSinceVersionSource in test code Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- .../Extensions/StringFormatWithExtensionTests.cs | 6 ++++++ .../VersionCalculation/VariableProviderTests.cs | 15 +++++++++++++++ src/GitVersion.Core/PublicAPI.Unshipped.txt | 2 ++ .../SemVer/SemanticVersionBuildMetaData.cs | 5 +++++ 4 files changed, 28 insertions(+) diff --git a/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs b/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs index 74f8dcbfc7..3c45f5b065 100644 --- a/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs +++ b/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs @@ -262,6 +262,7 @@ public void FormatAssemblyInformationalVersionWithSemanticVersionCustomFormatted Sha = "commitSha", ShortSha = "commitShortSha", CommitsSinceVersionSource = 42, + VersionSourceDistance = 42, CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; @@ -269,5 +270,10 @@ public void FormatAssemblyInformationalVersionWithSemanticVersionCustomFormatted const string expected = "1.2.3-0042"; var actual = target.FormatWith(semanticVersion, this.environment); Assert.That(actual, Is.EqualTo(expected)); + + // Test with VersionSourceDistance + const string targetWithVersionSourceDistance = "{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}"; + var actualWithVersionSourceDistance = targetWithVersionSourceDistance.FormatWith(semanticVersion, this.environment); + Assert.That(actualWithVersionSourceDistance, Is.EqualTo(expected)); } } diff --git a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs index a53055bdae..8cc9e2214f 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs @@ -256,6 +256,13 @@ public void ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomA var variables = this.variableProvider.GetVariablesFor(semanticVersion, configuration, preReleaseWeight); variables.ToJson().ShouldMatchApproved(c => c.SubFolder("Approved")); + + // Test with VersionSourceDistance + var configurationWithVersionSourceDistance = GitFlowConfigurationBuilder.New.WithTagPreReleaseWeight(0) + .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}+{VersionSourceDistance}.Branch.{BranchName}.Sha.{ShortSha}") + .Build(); + var variablesWithVersionSourceDistance = this.variableProvider.GetVariablesFor(semanticVersion, configurationWithVersionSourceDistance, preReleaseWeight); + variablesWithVersionSourceDistance.InformationalVersion.ShouldBe(variables.InformationalVersion); } [Test] @@ -313,5 +320,13 @@ public void Format_Allows_CSharp_FormatStrings() var variables = this.variableProvider.GetVariablesFor(semanticVersion, configuration, preReleaseWeight); variables.InformationalVersion.ShouldBe("1.2.3-0042"); + + // Test with VersionSourceDistance + var configurationWithVersionSourceDistance = GitFlowConfigurationBuilder.New + .WithTagPreReleaseWeight(0) + .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}") + .Build(); + var variablesWithVersionSourceDistance = this.variableProvider.GetVariablesFor(semanticVersion, configurationWithVersionSourceDistance, preReleaseWeight); + variablesWithVersionSourceDistance.InformationalVersion.ShouldBe("1.2.3-0042"); } } diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index 7dc5c58110..68e3375a64 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -1 +1,3 @@ #nullable enable +GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.get -> long +GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.init -> void diff --git a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs index 5ae4086543..9641388d1b 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs @@ -28,6 +28,8 @@ public class SemanticVersionBuildMetaData : IFormattable, IEquatable Date: Sun, 1 Feb 2026 10:33:34 +0000 Subject: [PATCH 119/358] Move VersionSourceDistance API additions from PublicAPI.Shipped.txt to PublicAPI.Unshipped.txt Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- src/GitVersion.Core/PublicAPI.Shipped.txt | 5 ----- src/GitVersion.Core/PublicAPI.Unshipped.txt | 5 +++++ src/GitVersion.MsBuild/PublicAPI.Shipped.txt | 2 -- src/GitVersion.MsBuild/PublicAPI.Unshipped.txt | 2 ++ 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index 1b030987e6..96c949b6a4 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -485,7 +485,6 @@ GitVersion.OutputVariables.GitVersionVariables.CommitDate.get -> string? GitVersion.OutputVariables.GitVersionVariables.CommitDate.init -> void GitVersion.OutputVariables.GitVersionVariables.CommitsSinceVersionSource.get -> string? GitVersion.OutputVariables.GitVersionVariables.CommitsSinceVersionSource.init -> void -GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string! Major, out string! Minor, out string! Patch, out string? BuildMetaData, out string? FullBuildMetaData, out string? BranchName, out string? EscapedBranchName, out string? Sha, out string? ShortSha, out string! MajorMinorPatch, out string! SemVer, out string! FullSemVer, out string? AssemblySemVer, out string? AssemblySemFileVer, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string! WeightedPreReleaseNumber, out string? InformationalVersion, out string? CommitDate, out string? VersionSourceSha, out string? CommitsSinceVersionSource, out string? VersionSourceDistance, out string? UncommittedChanges) -> void GitVersion.OutputVariables.GitVersionVariables.EscapedBranchName.get -> string? GitVersion.OutputVariables.GitVersionVariables.EscapedBranchName.init -> void GitVersion.OutputVariables.GitVersionVariables.FullBuildMetaData.get -> string? @@ -494,7 +493,6 @@ GitVersion.OutputVariables.GitVersionVariables.FullSemVer.get -> string! GitVersion.OutputVariables.GitVersionVariables.FullSemVer.init -> void GitVersion.OutputVariables.GitVersionVariables.GetEnumerator() -> System.Collections.Generic.IEnumerator>! GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(GitVersion.OutputVariables.GitVersionVariables! original) -> void -GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string! Major, string! Minor, string! Patch, string? BuildMetaData, string? FullBuildMetaData, string? BranchName, string? EscapedBranchName, string? Sha, string? ShortSha, string! MajorMinorPatch, string! SemVer, string! FullSemVer, string? AssemblySemVer, string? AssemblySemFileVer, string? PreReleaseTag, string? PreReleaseTagWithDash, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string! WeightedPreReleaseNumber, string? InformationalVersion, string? CommitDate, string? VersionSourceSha, string? CommitsSinceVersionSource, string? VersionSourceDistance, string? UncommittedChanges) -> void GitVersion.OutputVariables.GitVersionVariables.InformationalVersion.get -> string? GitVersion.OutputVariables.GitVersionVariables.InformationalVersion.init -> void GitVersion.OutputVariables.GitVersionVariables.Major.get -> string! @@ -526,8 +524,6 @@ GitVersion.OutputVariables.GitVersionVariables.UncommittedChanges.get -> string? GitVersion.OutputVariables.GitVersionVariables.UncommittedChanges.init -> void GitVersion.OutputVariables.GitVersionVariables.VersionSourceSha.get -> string? GitVersion.OutputVariables.GitVersionVariables.VersionSourceSha.init -> void -GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.get -> string? -GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.init -> void GitVersion.OutputVariables.GitVersionVariables.WeightedPreReleaseNumber.get -> string! GitVersion.OutputVariables.GitVersionVariables.WeightedPreReleaseNumber.init -> void GitVersion.OutputVariables.IVersionVariableSerializer @@ -630,7 +626,6 @@ GitVersion.SemanticVersionFormatValues.Sha.get -> string? GitVersion.SemanticVersionFormatValues.ShortSha.get -> string? GitVersion.SemanticVersionFormatValues.UncommittedChanges.get -> string! GitVersion.SemanticVersionFormatValues.VersionSourceSha.get -> string? -GitVersion.SemanticVersionFormatValues.VersionSourceDistance.get -> string! GitVersion.SemanticVersionFormatValues.WeightedPreReleaseNumber.get -> string! GitVersion.SemanticVersionPreReleaseTag GitVersion.SemanticVersionPreReleaseTag.CompareTo(GitVersion.SemanticVersionPreReleaseTag? other) -> int diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index 68e3375a64..13858b3344 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -1,3 +1,8 @@ #nullable enable +GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string! Major, out string! Minor, out string! Patch, out string? BuildMetaData, out string? FullBuildMetaData, out string? BranchName, out string? EscapedBranchName, out string? Sha, out string? ShortSha, out string! MajorMinorPatch, out string! SemVer, out string! FullSemVer, out string? AssemblySemVer, out string? AssemblySemFileVer, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string! WeightedPreReleaseNumber, out string? InformationalVersion, out string? CommitDate, out string? VersionSourceSha, out string? CommitsSinceVersionSource, out string? VersionSourceDistance, out string? UncommittedChanges) -> void +GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string! Major, string! Minor, string! Patch, string? BuildMetaData, string? FullBuildMetaData, string? BranchName, string? EscapedBranchName, string? Sha, string? ShortSha, string! MajorMinorPatch, string! SemVer, string! FullSemVer, string? AssemblySemVer, string? AssemblySemFileVer, string? PreReleaseTag, string? PreReleaseTagWithDash, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string! WeightedPreReleaseNumber, string? InformationalVersion, string? CommitDate, string? VersionSourceSha, string? CommitsSinceVersionSource, string? VersionSourceDistance, string? UncommittedChanges) -> void +GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.get -> string? +GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.init -> void GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.get -> long GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.init -> void +GitVersion.SemanticVersionFormatValues.VersionSourceDistance.get -> string! diff --git a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt index c69ff1faba..3482b74cb5 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt @@ -70,8 +70,6 @@ GitVersion.MsBuild.Tasks.GetVersion.UncommittedChanges.get -> string! GitVersion.MsBuild.Tasks.GetVersion.UncommittedChanges.set -> void GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSha.get -> string! GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSha.set -> void -GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.get -> string! -GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.set -> void GitVersion.MsBuild.Tasks.GetVersion.WeightedPreReleaseNumber.get -> string! GitVersion.MsBuild.Tasks.GetVersion.WeightedPreReleaseNumber.set -> void GitVersion.MsBuild.Tasks.UpdateAssemblyInfo diff --git a/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt b/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt index 7dc5c58110..8baadd300b 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt @@ -1 +1,3 @@ #nullable enable +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.get -> string! +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.set -> void From 001061e9e1ea657494231bba5340c4270af62543 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sat, 31 Jan 2026 14:16:05 +0100 Subject: [PATCH 120/358] build(tests): Remove CI build override Removes the explicit `ContinuousIntegrationBuild=false` setting from test projects, as this workaround for Shouldly approval tests is no longer necessary. --- src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj | 5 ----- src/GitVersion.Output.Tests/GitVersion.Output.Tests.csproj | 5 ----- 2 files changed, 10 deletions(-) diff --git a/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj index 48e037b2fa..446ac51a69 100644 --- a/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj +++ b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj @@ -24,9 +24,4 @@ - - - - false - diff --git a/src/GitVersion.Output.Tests/GitVersion.Output.Tests.csproj b/src/GitVersion.Output.Tests/GitVersion.Output.Tests.csproj index 91be0a1416..d54414c314 100644 --- a/src/GitVersion.Output.Tests/GitVersion.Output.Tests.csproj +++ b/src/GitVersion.Output.Tests/GitVersion.Output.Tests.csproj @@ -4,9 +4,4 @@ - - - - false - From f0c381df84be7577153ac7f06747affd1052d77a Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sat, 31 Jan 2026 14:16:17 +0100 Subject: [PATCH 121/358] test(core): Add test for VersionSourceDistance property Verify the property returns correct value in major release scenario. --- .../IntegrationTests/DocumentationSamples.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs index b3d45dc904..c1f2a0f77a 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs @@ -382,6 +382,7 @@ public void GitHubFlowMajorRelease() // test that the CommitsSinceVersionSource should still return commit count var version = fixture.GetVersion(); version.CommitsSinceVersionSource.ShouldBe("0"); + version.VersionSourceDistance.ShouldBe("0"); // Make a commit after a tag should bump up the beta fixture.MakeACommit(); From 5dd893c61f153f82500f7559550845069f53ab27 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sat, 31 Jan 2026 14:16:36 +0100 Subject: [PATCH 122/358] build: Suppress CS0618 obsolete member warnings Temporarily disables warnings for obsolete member usage in the build process. --- src/Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 7e0af5ca9c..a28c20aa9e 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -19,7 +19,7 @@ git $(NoWarn);NU1701;1591,8618,SYSLIB10;EnableGenerateDocumentationFile - $(NoWarn);CS8604;CS8620 + $(NoWarn);CS8604;CS8620;CS0618 $(WarningsAsErrors);RS0016;RS0017;RS0022;RS0024;RS0025;RS0026;RS0027 embedded From 9d8908b15567b28bfc33b3d86124dd81a765eee7 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 1 Feb 2026 12:36:28 +0100 Subject: [PATCH 123/358] refactor(serializer): Reorder VersionSourceSha property --- .../Serializer/VersionVariablesJsonModel.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs index 196328ea07..72c1e859c4 100644 --- a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs +++ b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs @@ -74,12 +74,12 @@ internal class VersionVariablesJsonModel [JsonPropertyDescription("The number of uncommitted changes present in the repository.")] public int? UncommittedChanges { get; set; } - [JsonPropertyDescription("The SHA of the commit used as version source.")] - public string? VersionSourceSha { get; set; } - [JsonPropertyDescription("The number of commits since the version source.")] public int? VersionSourceDistance { get; set; } + [JsonPropertyDescription("The SHA of the commit used as version source.")] + public string? VersionSourceSha { get; set; } + [JsonPropertyDescription("A summation of branch specific pre-release-weight and the PreReleaseNumber. Can be used to obtain a monotonically increasing version number across the branches.")] public int? WeightedPreReleaseNumber { get; set; } } From 03210389366ebe999cb906506fab40aa111d715e Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 1 Feb 2026 16:53:17 +0100 Subject: [PATCH 124/358] Feat: Introduce VersionSourceDistance and deprecate CommitsSinceVersionSource --- src/GitVersion.Core/PublicAPI.Shipped.txt | 1 - .../SemVer/SemanticVersionBuildMetaData.cs | 11 ++++------- .../SemanticVersioning/SemanticVersionFormatValues.cs | 4 ++-- .../VersionCalculation/VariableProvider.cs | 4 +--- .../ContinuousDeliveryVersionCalculator.cs | 2 +- .../ContinuousDeploymentVersionCalculator.cs | 2 +- 6 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index 96c949b6a4..0f7b979f4e 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -580,7 +580,6 @@ GitVersion.SemanticVersionBuildMetaData.CommitDate.init -> void GitVersion.SemanticVersionBuildMetaData.CommitsSinceTag.get -> long? GitVersion.SemanticVersionBuildMetaData.CommitsSinceTag.init -> void GitVersion.SemanticVersionBuildMetaData.CommitsSinceVersionSource.get -> long -GitVersion.SemanticVersionBuildMetaData.CommitsSinceVersionSource.init -> void GitVersion.SemanticVersionBuildMetaData.Equals(GitVersion.SemanticVersionBuildMetaData? other) -> bool GitVersion.SemanticVersionBuildMetaData.OtherMetaData.get -> string? GitVersion.SemanticVersionBuildMetaData.OtherMetaData.init -> void diff --git a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs index 9641388d1b..b628f39b0e 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs @@ -26,7 +26,7 @@ public class SemanticVersionBuildMetaData : IFormattable, IEquatable VersionSourceDistance; public long VersionSourceDistance { get; init; } @@ -46,7 +46,6 @@ public SemanticVersionBuildMetaData(string? versionSourceSha, long? commitsSince this.CommitDate = commitDate; this.OtherMetaData = otherMetadata; this.VersionSourceSha = versionSourceSha; - this.CommitsSinceVersionSource = commitsSinceTag ?? 0; this.VersionSourceDistance = commitsSinceTag ?? 0; this.UncommittedChanges = numberOfUnCommittedChanges; } @@ -62,7 +61,6 @@ public SemanticVersionBuildMetaData(SemanticVersionBuildMetaData buildMetaData) this.CommitDate = buildMetaData.CommitDate; this.OtherMetaData = buildMetaData.OtherMetaData; this.VersionSourceSha = buildMetaData.VersionSourceSha; - this.CommitsSinceVersionSource = buildMetaData.CommitsSinceVersionSource; this.VersionSourceDistance = buildMetaData.VersionSourceDistance; this.UncommittedChanges = buildMetaData.UncommittedChanges; } @@ -118,12 +116,12 @@ public static SemanticVersionBuildMetaData Parse(string? buildMetaData) var parsed = RegexPatterns.SemanticVersion.ParseBuildMetaDataRegex.Match(buildMetaData); long? buildMetaDataCommitsSinceTag = null; - long? buildMetaDataCommitsSinceVersionSource = null; + long? buildMetaDataVersionSourceDistance = null; if (parsed.Groups["BuildNumber"].Success) { if (long.TryParse(parsed.Groups["BuildNumber"].Value, out var buildNumber)) buildMetaDataCommitsSinceTag = buildNumber; - buildMetaDataCommitsSinceVersionSource = buildMetaDataCommitsSinceTag ?? 0; + buildMetaDataVersionSourceDistance = buildMetaDataCommitsSinceTag ?? 0; } string? buildMetaDataBranch = null; @@ -141,8 +139,7 @@ public static SemanticVersionBuildMetaData Parse(string? buildMetaData) return new() { CommitsSinceTag = buildMetaDataCommitsSinceTag, - CommitsSinceVersionSource = buildMetaDataCommitsSinceVersionSource ?? 0, - VersionSourceDistance = buildMetaDataCommitsSinceVersionSource ?? 0, + VersionSourceDistance = buildMetaDataVersionSourceDistance ?? 0, Branch = buildMetaDataBranch, Sha = buildMetaDataSha, OtherMetaData = buildMetaDataOtherMetaData diff --git a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs index 22eaecf1ab..3213c7df3b 100644 --- a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs +++ b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs @@ -55,9 +55,9 @@ public class SemanticVersionFormatValues(SemanticVersion semver, IGitVersionConf public string? VersionSourceSha => semver.BuildMetaData.VersionSourceSha; [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] - public string CommitsSinceVersionSource => semver.BuildMetaData.CommitsSinceVersionSource.ToString(CultureInfo.InvariantCulture); + public string CommitsSinceVersionSource => semver.BuildMetaData.VersionSourceDistance.ToString(CultureInfo.InvariantCulture); - public string VersionSourceDistance => semver.BuildMetaData.CommitsSinceVersionSource.ToString(CultureInfo.InvariantCulture); + public string VersionSourceDistance => semver.BuildMetaData.VersionSourceDistance.ToString(CultureInfo.InvariantCulture); public string UncommittedChanges => semver.BuildMetaData.UncommittedChanges.ToString(CultureInfo.InvariantCulture); } diff --git a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs index ff2af83173..4eda9e5b9d 100644 --- a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs @@ -63,9 +63,7 @@ public GitVersionVariables GetVariablesFor( informationalVersion, semverFormatValues.CommitDate, semverFormatValues.VersionSourceSha, -#pragma warning disable CS0618 // Type or member is obsolete - semverFormatValues.CommitsSinceVersionSource, -#pragma warning restore CS0618 // Type or member is obsolete + semverFormatValues.VersionSourceDistance, semverFormatValues.VersionSourceDistance, semverFormatValues.UncommittedChanges ); diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs index 91098dae31..ca436a59d2 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs @@ -34,7 +34,7 @@ private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, IComm }, BuildMetaData = new SemanticVersionBuildMetaData(buildMetaData) { - CommitsSinceVersionSource = buildMetaData.CommitsSinceTag!.Value, + VersionSourceDistance = buildMetaData.CommitsSinceTag!.Value, CommitsSinceTag = null } }; diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs index eb8bcc3acc..7337f99b78 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs @@ -25,7 +25,7 @@ private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, IComm PreReleaseTag = SemanticVersionPreReleaseTag.Empty, BuildMetaData = new SemanticVersionBuildMetaData(buildMetaData) { - CommitsSinceVersionSource = buildMetaData.CommitsSinceTag!.Value, + VersionSourceDistance = buildMetaData.CommitsSinceTag!.Value, CommitsSinceTag = null } }; From b26f70980fc1c16cf6748324401c18f55debd346 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 1 Feb 2026 16:53:17 +0100 Subject: [PATCH 125/358] Refactor: Update GitVersionExecutorTests cache file content --- .../Core/GitVersionExecutorTests.cs | 122 +++++++++--------- 1 file changed, 63 insertions(+), 59 deletions(-) diff --git a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs index 53a34bb188..6c91e36915 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs @@ -66,6 +66,7 @@ public void GitPreparerShouldNotFailWhenTargetPathNotInitialized() [Test] public void CacheKeyForWorktree() { + this.fileSystem = new FileSystem(); using var fixture = new EmptyRepositoryFixture(); fixture.Repository.MakeACommit(); var worktreePath = GetWorktreePath(fixture); @@ -100,31 +101,32 @@ public void CacheFileExistsOnDisk() { const string versionCacheFileContent = """ { + "AssemblySemFileVer": "4.10.3.0", + "AssemblySemVer": "4.10.3.0", + "BranchName": "feature/test", + "BuildMetaData": null, + "CommitDate": "2015-11-10T00:00:00.000Z", + "CommitsSinceVersionSource": 19, + "EscapedBranchName": "feature-test", + "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", + "FullSemVer": "4.10.3-test.19", + "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", "Major": 4, + "MajorMinorPatch": "4.10.3", "Minor": 10, "Patch": 3, - "PreReleaseTag": "test.19", - "PreReleaseTagWithDash": "-test.19", "PreReleaseLabel": "test", "PreReleaseLabelWithDash": "-test", "PreReleaseNumber": 19, - "WeightedPreReleaseNumber": 19, - "BuildMetaData": null, - "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "MajorMinorPatch": "4.10.3", + "PreReleaseTag": "test.19", + "PreReleaseTagWithDash": "-test.19", "SemVer": "4.10.3-test.19", - "AssemblySemVer": "4.10.3.0", - "AssemblySemFileVer": "4.10.3.0", - "FullSemVer": "4.10.3-test.19", - "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "BranchName": "feature/test", - "EscapedBranchName": "feature-test", "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", "ShortSha": "dd2a29af", + "UncommittedChanges": 0, + "VersionSourceDistance": 19, "VersionSourceSha": "4.10.2", - "CommitsSinceVersionSource": 19, - "CommitDate": "2015-11-10T00:00:00.000Z", - "UncommittedChanges": 0 + "WeightedPreReleaseNumber": 19 } """; @@ -164,29 +166,29 @@ public void CacheFileExistsOnDiskWhenOverrideConfigIsSpecifiedVersionShouldBeDyn { const string versionCacheFileContent = """ { + "AssemblySemFileVer": "4.10.3.0", + "AssemblySemVer": "4.10.3.0", + "BranchName": "feature/test", + "BuildMetaData": null, + "CommitDate": "2015-11-10T00:00:00.000Z", + "CommitsSinceVersionSource": 19, + "EscapedBranchName": "feature-test", + "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", + "FullSemVer": "4.10.3-test.19", + "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", "Major": 4, "Minor": 10, "Patch": 3, - "PreReleaseTag": "test.19", - "PreReleaseTagWithDash": "-test.19", "PreReleaseLabel": "test", "PreReleaseLabelWithDash": "-test", "PreReleaseNumber": 19, - "BuildMetaData": null, - "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "MajorMinorPatch": "4.10.3", + "PreReleaseTag": "test.19", + "PreReleaseTagWithDash": "-test.19", "SemVer": "4.10.3-test.19", - "AssemblySemVer": "4.10.3.0", - "AssemblySemFileVer": "4.10.3.0", - "FullSemVer": "4.10.3-test.19", - "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "BranchName": "feature/test", - "EscapedBranchName": "feature-test", "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", "ShortSha": "dd2a29af", - "CommitsSinceVersionSource": 19, - "CommitDate": "2015-11-10T00:00:00.000Z", - "UncommittedChanges": 0 + "UncommittedChanges": 0, + "VersionSourceDistance": 19 } """; @@ -254,31 +256,32 @@ public void ConfigChangeInvalidatesCache(string configFileName) { const string versionCacheFileContent = """ { + "AssemblySemFileVer": "4.10.3.0", + "AssemblySemVer": "4.10.3.0", + "BranchName": "feature/test", + "BuildMetaData": null, + "CommitDate": "2015-11-10T00:00:00.000Z", + "CommitsSinceVersionSource": 19, + "EscapedBranchName": "feature-test", + "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", + "FullSemVer": "4.10.3-test.19", + "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", "Major": 4, + "MajorMinorPatch": "4.10.3", "Minor": 10, "Patch": 3, - "PreReleaseTag": "test.19", - "PreReleaseTagWithDash": "-test.19", "PreReleaseLabel": "test", "PreReleaseLabelWithDash": "-test", "PreReleaseNumber": 19, - "WeightedPreReleaseNumber": 19, - "BuildMetaData": null, - "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "MajorMinorPatch": "4.10.3", + "PreReleaseTag": "test.19", + "PreReleaseTagWithDash": "-test.19", "SemVer": "4.10.3-test.19", - "AssemblySemVer": "4.10.3.0", - "AssemblySemFileVer": "4.10.3.0", - "FullSemVer": "4.10.3-test.19", - "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "BranchName": "feature/test", - "EscapedBranchName": "feature-test", "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", "ShortSha": "dd2a29af", + "UncommittedChanges": 0, + "VersionSourceDistance": 19, "VersionSourceSha": "4.10.2", - "CommitsSinceVersionSource": 19, - "CommitDate": "2015-11-10T00:00:00.000Z", - "UncommittedChanges": 0 + "WeightedPreReleaseNumber": 19 } """; @@ -316,31 +319,32 @@ public void NoCacheBypassesCache() { const string versionCacheFileContent = """ { + "AssemblySemFileVer": "4.10.3.0", + "AssemblySemVer": "4.10.3.0", + "BranchName": "feature/test", + "BuildMetaData": null, + "CommitDate": "2015-11-10T00:00:00.000Z", + "CommitsSinceVersionSource": 19, + "EscapedBranchName": "feature-test", + "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", + "FullSemVer": "4.10.3-test.19", + "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", "Major": 4, + "MajorMinorPatch": "4.10.3", "Minor": 10, "Patch": 3, - "PreReleaseTag": "test.19", - "PreReleaseTagWithDash": "-test.19", "PreReleaseLabel": "test", "PreReleaseLabelWithDash": "-test", "PreReleaseNumber": 19, - "WeightedPreReleaseNumber": 19, - "BuildMetaData": null, - "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "MajorMinorPatch": "4.10.3", + "PreReleaseTag": "test.19", + "PreReleaseTagWithDash": "-test.19", "SemVer": "4.10.3-test.19", - "AssemblySemVer": "4.10.3.0", - "AssemblySemFileVer": "4.10.3.0", - "FullSemVer": "4.10.3-test.19", - "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "BranchName": "feature/test", - "EscapedBranchName": "feature-test", "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", "ShortSha": "dd2a29af", + "UncommittedChanges": 0, + "VersionSourceDistance": 19, "VersionSourceSha": "4.10.2", - "CommitsSinceVersionSource": 19, - "CommitDate": "2015-11-10T00:00:00.000Z", - "UncommittedChanges": 0 + "WeightedPreReleaseNumber": 19 } """; From 13448f2cf12aaeeaabdc732267fd6415d8089af0 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 1 Feb 2026 16:53:17 +0100 Subject: [PATCH 126/358] Test: Update core tests for VersionSourceDistance --- .../StringFormatWithExtensionTests.cs | 12 +++---- .../IntegrationTests/DevelopScenarios.cs | 10 +++--- .../IntegrationTests/DocumentationSamples.cs | 2 +- .../VariableProviderTests.cs | 36 ++++++++++--------- .../VersionCalculation/VersionSourceTests.cs | 3 ++ 5 files changed, 33 insertions(+), 30 deletions(-) diff --git a/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs b/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs index 3c45f5b065..195e1c464c 100644 --- a/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs +++ b/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs @@ -247,7 +247,7 @@ public void FormatProperty_NullObject_WithFallback_QuotedAndEmpty() } [Test] - public void FormatAssemblyInformationalVersionWithSemanticVersionCustomFormattedCommitsSinceVersionSource() + public void FormatAssemblyInformationalVersionWithSemanticVersionCustomFormattedVersionSourceDistance() { var semanticVersion = new SemanticVersion { @@ -261,19 +261,17 @@ public void FormatAssemblyInformationalVersionWithSemanticVersionCustomFormatted VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitsSinceVersionSource = 42, VersionSourceDistance = 42, CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; - const string target = "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}"; const string expected = "1.2.3-0042"; + var target = "{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}"; var actual = target.FormatWith(semanticVersion, this.environment); Assert.That(actual, Is.EqualTo(expected)); - // Test with VersionSourceDistance - const string targetWithVersionSourceDistance = "{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}"; - var actualWithVersionSourceDistance = targetWithVersionSourceDistance.FormatWith(semanticVersion, this.environment); - Assert.That(actualWithVersionSourceDistance, Is.EqualTo(expected)); + target = "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}"; + actual = target.FormatWith(semanticVersion, this.environment); + Assert.That(actual, Is.EqualTo(expected)); } } diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs index 72df5e2f2a..f137a05c52 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs @@ -211,7 +211,7 @@ public void TagOnHotfixShouldNotAffectDevelop() } [Test] - public void CommitsSinceVersionSourceShouldNotGoDownUponGitFlowReleaseFinish() + public void VersionSourceDistanceShouldNotGoDownUponGitFlowReleaseFinish() { var configuration = GitFlowConfigurationBuilder.New .WithBranch("main", builder => builder.WithDeploymentMode(DeploymentMode.ContinuousDelivery)) @@ -253,7 +253,7 @@ public void CommitsSinceVersionSourceShouldNotGoDownUponGitFlowReleaseFinish() } [Test] - public void CommitsSinceVersionSourceShouldNotGoDownUponMergingFeatureOnlyToDevelop() + public void VersionSourceDistanceShouldNotGoDownUponMergingFeatureOnlyToDevelop() { var configuration = GitFlowConfigurationBuilder.New .WithBranch("main", builder => builder.WithDeploymentMode(DeploymentMode.ContinuousDelivery)) @@ -302,7 +302,7 @@ public void PreviousPreReleaseTagShouldBeRespectedWhenCountingCommits() } [Test] - public void WhenPreventIncrementOfMergedBranchVersionIsSetToFalseForDevelopCommitsSinceVersionSourceShouldNotGoDownWhenMergingReleaseToDevelop() + public void WhenPreventIncrementOfMergedBranchVersionIsSetToFalseForDevelopVersionSourceDistanceShouldNotGoDownWhenMergingReleaseToDevelop() { var configuration = GitFlowConfigurationBuilder.New .WithBranch("main", builder => builder.WithDeploymentMode(DeploymentMode.ContinuousDelivery)) @@ -347,7 +347,7 @@ public void WhenPreventIncrementOfMergedBranchVersionIsSetToFalseForDevelopCommi } [Test] - public void WhenPreventIncrementOfMergedBranchVersionIsSetToTrueForDevelopCommitsSinceVersionSourceShouldNotGoDownWhenMergingReleaseToDevelop() + public void WhenPreventIncrementOfMergedBranchVersionIsSetToTrueForDevelopVersionSourceDistanceShouldNotGoDownWhenMergingReleaseToDevelop() { var configuration = GitFlowConfigurationBuilder.New .WithDeploymentMode(DeploymentMode.ContinuousDelivery) @@ -388,7 +388,7 @@ public void WhenPreventIncrementOfMergedBranchVersionIsSetToTrueForDevelopCommit } [Test] - public void WhenPreventIncrementOfMergedBranchVersionIsSetToFalseForDevelopCommitsSinceVersionSourceShouldNotGoDownWhenMergingHotfixToDevelop() + public void WhenPreventIncrementOfMergedBranchVersionIsSetToFalseForDevelopVersionSourceDistanceShouldNotGoDownWhenMergingHotfixToDevelop() { var configuration = GitFlowConfigurationBuilder.New .WithBranch("develop", builder => builder diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs index c1f2a0f77a..343447f7dc 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs @@ -379,7 +379,7 @@ public void GitHubFlowMajorRelease() fixture.ApplyTag("2.0.0-beta.1"); fixture.AssertFullSemver("2.0.0-beta.2+0"); - // test that the CommitsSinceVersionSource should still return commit count + // test that the VersionSourceDistance should still return the commit count var version = fixture.GetVersion(); version.CommitsSinceVersionSource.ShouldBe("0"); version.VersionSourceDistance.ShouldBe("0"); diff --git a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs index 8cc9e2214f..4d68661639 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs @@ -68,7 +68,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForPreRelease() VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitsSinceVersionSource = 5, + VersionSourceDistance = 5, CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") } }; @@ -118,7 +118,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForStable() VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitsSinceVersionSource = 5, + VersionSourceDistance = 5, CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") } }; @@ -142,7 +142,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommi { VersionSourceSha = "versionSourceSha", CommitsSinceTag = 5, - CommitsSinceVersionSource = 5, + VersionSourceDistance = 5, Sha = "commitSha", ShortSha = "commitShortSha", CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") @@ -250,19 +250,20 @@ public void ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomA }; var configuration = GitFlowConfigurationBuilder.New.WithTagPreReleaseWeight(0) - .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}+{CommitsSinceVersionSource}.Branch.{BranchName}.Sha.{ShortSha}") + .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}+{VersionSourceDistance}.Branch.{BranchName}.Sha.{ShortSha}") .Build(); var preReleaseWeight = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("develop")).PreReleaseWeight; var variables = this.variableProvider.GetVariablesFor(semanticVersion, configuration, preReleaseWeight); variables.ToJson().ShouldMatchApproved(c => c.SubFolder("Approved")); - // Test with VersionSourceDistance - var configurationWithVersionSourceDistance = GitFlowConfigurationBuilder.New.WithTagPreReleaseWeight(0) - .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}+{VersionSourceDistance}.Branch.{BranchName}.Sha.{ShortSha}") + configuration = GitFlowConfigurationBuilder.New.WithTagPreReleaseWeight(0) + .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}+{CommitsSinceVersionSource}.Branch.{BranchName}.Sha.{ShortSha}") .Build(); - var variablesWithVersionSourceDistance = this.variableProvider.GetVariablesFor(semanticVersion, configurationWithVersionSourceDistance, preReleaseWeight); - variablesWithVersionSourceDistance.InformationalVersion.ShouldBe(variables.InformationalVersion); + preReleaseWeight = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("develop")).PreReleaseWeight; + variables = this.variableProvider.GetVariablesFor(semanticVersion, configuration, preReleaseWeight); + + variables.ToJson().ShouldMatchApproved(c => c.SubFolder("Approved")); } [Test] @@ -280,7 +281,7 @@ public void ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLab VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitsSinceVersionSource = 5, + VersionSourceDistance = 5, CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z") } }; @@ -307,26 +308,27 @@ public void Format_Allows_CSharp_FormatStrings() VersionSourceSha = "versionSourceSha", Sha = "commitSha", ShortSha = "commitShortSha", - CommitsSinceVersionSource = 42, + VersionSourceDistance = 42, CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture) } }; var configuration = GitFlowConfigurationBuilder.New .WithTagPreReleaseWeight(0) - .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}") + .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}") .Build(); var preReleaseWeight = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("develop")).PreReleaseWeight; var variables = this.variableProvider.GetVariablesFor(semanticVersion, configuration, preReleaseWeight); variables.InformationalVersion.ShouldBe("1.2.3-0042"); - // Test with VersionSourceDistance - var configurationWithVersionSourceDistance = GitFlowConfigurationBuilder.New + configuration = GitFlowConfigurationBuilder.New .WithTagPreReleaseWeight(0) - .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}") + .WithAssemblyInformationalFormat("{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}") .Build(); - var variablesWithVersionSourceDistance = this.variableProvider.GetVariablesFor(semanticVersion, configurationWithVersionSourceDistance, preReleaseWeight); - variablesWithVersionSourceDistance.InformationalVersion.ShouldBe("1.2.3-0042"); + preReleaseWeight = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("develop")).PreReleaseWeight; + variables = this.variableProvider.GetVariablesFor(semanticVersion, configuration, preReleaseWeight); + + variables.InformationalVersion.ShouldBe("1.2.3-0042"); } } diff --git a/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs index a47560d82d..bf97221b8f 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs @@ -24,6 +24,7 @@ public void VersionSourceSha() semanticVersion.BuildMetaData.VersionSourceSha.ShouldBeNull(); semanticVersion.BuildMetaData.CommitsSinceVersionSource.ShouldBe(3); + semanticVersion.BuildMetaData.VersionSourceDistance.ShouldBe(3); } [Test] @@ -39,6 +40,7 @@ public void VersionSourceShaOneCommit() semanticVersion.BuildMetaData.VersionSourceSha.ShouldBeNull(); semanticVersion.BuildMetaData.CommitsSinceVersionSource.ShouldBe(1); + semanticVersion.BuildMetaData.VersionSourceDistance.ShouldBe(1); } [Test] @@ -58,6 +60,7 @@ public void VersionSourceShaUsingTag() semanticVersion.BuildMetaData.VersionSourceSha.ShouldBe(secondCommitSha); semanticVersion.BuildMetaData.CommitsSinceVersionSource.ShouldBe(1); + semanticVersion.BuildMetaData.VersionSourceDistance.ShouldBe(1); } private static INextVersionCalculator GetNextVersionCalculator(IGitRepository repository) From a854f1483e42a81d8a2a2200b94675f1ebf7640d Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 1 Feb 2026 16:53:17 +0100 Subject: [PATCH 127/358] Test: Update approved test snapshots for VersionSourceDistance --- .../Approved/JsonVersionBuilderTests.Json.approved.txt | 2 +- ...riablesInContinuousDeliveryModeForFeatureBranch.approved.txt | 2 +- ...odeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt | 2 +- ...sVariablesInContinuousDeliveryModeForPreRelease.approved.txt | 2 +- ...videsVariablesInContinuousDeliveryModeForStable.approved.txt | 2 +- ...inuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt | 2 +- ...ariablesInContinuousDeploymentModeForPreRelease.approved.txt | 2 +- ...desVariablesInContinuousDeploymentModeForStable.approved.txt | 2 +- ...eploymentModeForStableWhenCurrentCommitIsTagged.approved.txt | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt index 657aea4857..3e7054fe81 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt @@ -22,7 +22,7 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, - "VersionSourceSha": "versionSourceSha", "VersionSourceDistance": 5, + "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 4 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt index 957e7025d2..956347e9e5 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt @@ -22,7 +22,7 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, - "VersionSourceSha": "versionSourceSha", "VersionSourceDistance": 5, + "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt index 87c8348c33..b1130e9f0b 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt @@ -22,7 +22,7 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, - "VersionSourceSha": "versionSourceSha", "VersionSourceDistance": 5, + "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt index 49becbd974..c59b621163 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt @@ -22,7 +22,7 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, - "VersionSourceSha": "versionSourceSha", "VersionSourceDistance": 5, + "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 4 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt index 9391818e59..b64bbdffe8 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt @@ -22,7 +22,7 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, - "VersionSourceSha": "versionSourceSha", "VersionSourceDistance": 5, + "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt index b6ce34c328..60c3ee572d 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt @@ -22,7 +22,7 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, - "VersionSourceSha": "versionSourceSha", "VersionSourceDistance": 5, + "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 55009 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt index 3d1f743058..c6edf6f27b 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt @@ -22,7 +22,7 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, - "VersionSourceSha": "versionSourceSha", "VersionSourceDistance": 5, + "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 8 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt index e863d06cb0..a0b1cf3bd9 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt @@ -22,7 +22,7 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, - "VersionSourceSha": "versionSourceSha", "VersionSourceDistance": 5, + "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 5 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt index 2021304b0a..215754d67e 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt @@ -22,7 +22,7 @@ "Sha": "commitSha", "ShortSha": "commitShortSha", "UncommittedChanges": 0, - "VersionSourceSha": "versionSourceSha", "VersionSourceDistance": 5, + "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 } \ No newline at end of file From 5fec4dd88712ff183422551c43c4ce1537f58e67 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 1 Feb 2026 16:53:17 +0100 Subject: [PATCH 128/358] Build: Expose VersionSourceDistance in MSBuild targets --- src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets index adb0f1e6bd..77fa353fbe 100644 --- a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets +++ b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets @@ -63,6 +63,7 @@ + @@ -103,6 +104,7 @@ GitVersion_CommitDate=$(GitVersion_CommitDate);$(DefineConstants) GitVersion_VersionSourceSha=$(GitVersion_VersionSourceSha);$(DefineConstants) GitVersion_CommitsSinceVersionSource=$(GitVersion_CommitsSinceVersionSource);$(DefineConstants) + GitVersion_VersionSourceDistance=$(GitVersion_VersionSourceDistance);$(DefineConstants) GitVersion_UncommittedChanges=$(GitVersion_UncommittedChanges);$(DefineConstants) From 1358781efe0b35c36e617eb6d3a3d70898fbc70d Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 1 Feb 2026 16:53:17 +0100 Subject: [PATCH 129/358] Docs: Update documentation for VersionSourceDistance --- docs/input/docs/reference/configuration.md | 2 +- .../input/docs/reference/custom-formatting.md | 22 ++++---- .../mdsource/configuration.source.md | 2 +- docs/input/docs/reference/variables.md | 56 +++++++++---------- 4 files changed, 41 insertions(+), 41 deletions(-) diff --git a/docs/input/docs/reference/configuration.md b/docs/input/docs/reference/configuration.md index 9c4dd1a8f6..2a1350176f 100644 --- a/docs/input/docs/reference/configuration.md +++ b/docs/input/docs/reference/configuration.md @@ -907,7 +907,7 @@ When `release-2.0.0` is merged into main, we want main to build `2.0.0`. If prevents incrementing after a versioned branch is merged. In a GitFlow-based repository, setting this option can have implications on the -`CommitsSinceVersionSource` output variable. It can rule out a potentially +`VersionSourceDistance` output variable. It can rule out a potentially better version source proposed by the `MergeMessageBaseVersionStrategy`. For more details and an in-depth analysis, please see [the discussion][2506]. diff --git a/docs/input/docs/reference/custom-formatting.md b/docs/input/docs/reference/custom-formatting.md index a4bae75162..61a21d5569 100644 --- a/docs/input/docs/reference/custom-formatting.md +++ b/docs/input/docs/reference/custom-formatting.md @@ -30,7 +30,7 @@ assembly-informational-format: "{Major}.{Minor}.{Patch:F2}-{PreReleaseLabel}" - `F` or `f` (Fixed-point): `{Patch:F2}` → `"1.23"` - `N` or `n` (Number): `{BuildMetadata:N0}` → `"1,234"` - `C` or `c` (Currency): `{Major:C}` → `"¤1.00"` -- `P` or `p` (Percent): `{CommitsSinceVersionSource:P}` → `"12,345.60 %"` +- `P` or `p` (Percent): `{VersionSourceDistance:P}` → `"12,345.60 %"` - `D` or `d` (Decimal): `{Major:D4}` → `"0001"` - `B` or `b` (Binary): `{Minor:B4}` → `"0101"` - `X` or `x` (Hexadecimal): `{Patch:X}` → `"FF"` @@ -72,14 +72,14 @@ branches: feature: label: "{BranchName:c}" # Converts to PascalCase -assembly-informational-format: "{Major}.{Minor}.{Patch}-{PreReleaseLabel:l}.{CommitsSinceVersionSource:0000}" +assembly-informational-format: "{Major}.{Minor}.{Patch}-{PreReleaseLabel:l}.{VersionSourceDistance:0000}" ``` **Template Usage:** ```yaml # Using format strings in templates -assembly-informational-format: "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}" +assembly-informational-format: "{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}" assembly-informational-format: "{SemVer}-{BranchName:l}" ``` @@ -91,7 +91,7 @@ Based on actual test cases from the implementation: ```yaml # Zero-padded commit count -assembly-informational-format: "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}" +assembly-informational-format: "{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}" # Result: "1.2.3-0042" ``` @@ -122,7 +122,7 @@ assembly-informational-format: "Cost-{Major:C}" # Result: "Cost-¤1.00" assembly-informational-format: "Progress-{Minor:P}" # Result: "Progress-200.00 %" # Thousands separator -assembly-informational-format: "Build-{CommitsSinceVersionSource:N0}" # Result: "Build-1,234" +assembly-informational-format: "Build-{VersionSourceDistance:N0}" # Result: "Build-1,234" ``` ## Configuration Integration @@ -133,9 +133,9 @@ The format strings are used in GitVersion configuration files through various fo ```yaml # GitVersion.yml -assembly-informational-format: "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}" +assembly-informational-format: "{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}" assembly-versioning-format: "{Major}.{Minor}.{Patch}.{env:BUILD_NUMBER}" -assembly-file-versioning-format: "{MajorMinorPatch}.{CommitsSinceVersionSource}" +assembly-file-versioning-format: "{MajorMinorPatch}.{VersionSourceDistance}" ``` ### Environment Variable Integration @@ -152,15 +152,15 @@ Based on the actual test implementation: ```yaml # Example from VariableProviderTests.cs -assembly-informational-format: "{Major}.{Minor}.{Patch}-{CommitsSinceVersionSource:0000}" -# Result: "1.2.3-0042" when CommitsSinceVersionSource = 42 +assembly-informational-format: "{Major}.{Minor}.{Patch}-{VersionSourceDistance:0000}" +# Result: "1.2.3-0042" when VersionSourceDistance = 42 # Branch-specific formatting branches: feature: label: "{BranchName:c}" # PascalCase conversion hotfix: - label: "hotfix.{CommitsSinceVersionSource:00}" + label: "hotfix.{VersionSourceDistance:00}" ``` ## Invariant Culture Formatting @@ -174,7 +174,7 @@ The formatting system uses `CultureInfo.InvariantCulture` by default through the ```csharp // All environments produce the same output: -// {CommitsSinceVersionSource:N0} → "1,234" +// {VersionSourceDistance:N0} → "1,234" // {CommitDate:MMM dd, yyyy} → "Mar 15, 2024" // {Major:C} → "¤1.00" (generic currency symbol) ``` diff --git a/docs/input/docs/reference/mdsource/configuration.source.md b/docs/input/docs/reference/mdsource/configuration.source.md index f08c69c816..8c745a16d3 100644 --- a/docs/input/docs/reference/mdsource/configuration.source.md +++ b/docs/input/docs/reference/mdsource/configuration.source.md @@ -508,7 +508,7 @@ When `release-2.0.0` is merged into main, we want main to build `2.0.0`. If prevents incrementing after a versioned branch is merged. In a GitFlow-based repository, setting this option can have implications on the -`CommitsSinceVersionSource` output variable. It can rule out a potentially +`VersionSourceDistance` output variable. It can rule out a potentially better version source proposed by the `MergeMessageBaseVersionStrategy`. For more details and an in-depth analysis, please see [the discussion][2506]. diff --git a/docs/input/docs/reference/variables.md b/docs/input/docs/reference/variables.md index e6abcbaf57..d4027f0172 100644 --- a/docs/input/docs/reference/variables.md +++ b/docs/input/docs/reference/variables.md @@ -42,34 +42,34 @@ what is available. For the `release/3.0.0` branch of GitVersion it shows: Each property of the above JSON document is described in the below table. -| Property | Description | -| --------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Major` | The major version. Should be incremented on breaking changes. | -| `Minor` | The minor version. Should be incremented on new features. | -| `Patch` | The patch version. Should be incremented on bug fixes. | -| `PreReleaseTag` | The pre-release tag is the pre-release label suffixed by the `PreReleaseNumber`. | -| `PreReleaseTagWithDash` | The pre-release tag prefixed with a dash. | -| `PreReleaseLabel` | The pre-release label. | -| `PreReleaseLabelWithDash` | The pre-release label prefixed with a dash. | -| `PreReleaseNumber` | The pre-release number. | -| `WeightedPreReleaseNumber` | A summation of branch specific `pre-release-weight` and the `PreReleaseNumber`. Can be used to obtain a monotonically increasing version number across the branches. | -| `BuildMetaData` | The build metadata, usually representing number of commits since the `VersionSourceSha`. Despite its name, will not increment for every build. | -| `FullBuildMetaData` | The `BuildMetaData` suffixed with `BranchName` and `Sha`. | -| `MajorMinorPatch` | `Major`, `Minor` and `Patch` joined together, separated by `.`. | -| `SemVer` | The semantical version number, including `PreReleaseTagWithDash` for pre-release version numbers. | -| `AssemblySemVer` | Suitable for .NET `AssemblyVersion`. Defaults to `Major.Minor.0.0` to allow the assembly to be hotfixed without breaking existing applications that may be referencing it. | -| `AssemblySemFileVer` | Suitable for .NET `AssemblyFileVersion`. Defaults to `Major.Minor.Patch.0`. | -| `InformationalVersion` | Suitable for .NET `AssemblyInformationalVersion`. Defaults to `FullSemVer` suffixed by `FullBuildMetaData`. | -| `FullSemVer` | The full, SemVer 2.0 compliant version number. | -| `BranchName` | The name of the checked out Git branch. | -| `EscapedBranchName` | Equal to `BranchName`, but with `/` replaced with `-`. | -| `Sha` | The SHA of the Git commit. | -| `ShortSha` | The `Sha` limited to 7 characters. | -| `VersionSourceSha` | The SHA of the commit used as version source. | -| `CommitsSinceVersionSource` | (Deprecated: use `VersionSourceDistance` instead) The number of commits since the version source. | -| `VersionSourceDistance` | The number of commits since the version source. | -| `CommitDate` | The ISO-8601 formatted date of the commit identified by `Sha`. | -| `UncommittedChanges` | The number of uncommitted changes present in the repository. | +| Property | Description | +|----------------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `Major` | The major version. Should be incremented on breaking changes. | +| `Minor` | The minor version. Should be incremented on new features. | +| `Patch` | The patch version. Should be incremented on bug fixes. | +| `PreReleaseTag` | The pre-release tag is the pre-release label suffixed by the `PreReleaseNumber`. | +| `PreReleaseTagWithDash` | The pre-release tag prefixed with a dash. | +| `PreReleaseLabel` | The pre-release label. | +| `PreReleaseLabelWithDash` | The pre-release label prefixed with a dash. | +| `PreReleaseNumber` | The pre-release number. | +| `WeightedPreReleaseNumber` | A summation of branch specific `pre-release-weight` and the `PreReleaseNumber`. Can be used to obtain a monotonically increasing version number across the branches. | +| `BuildMetaData` | The build metadata, usually representing number of commits since the `VersionSourceSha`. Despite its name, will not increment for every build. | +| `FullBuildMetaData` | The `BuildMetaData` suffixed with `BranchName` and `Sha`. | +| `MajorMinorPatch` | `Major`, `Minor` and `Patch` joined together, separated by `.`. | +| `SemVer` | The semantical version number, including `PreReleaseTagWithDash` for pre-release version numbers. | +| `AssemblySemVer` | Suitable for .NET `AssemblyVersion`. Defaults to `Major.Minor.0.0` to allow the assembly to be hotfixed without breaking existing applications that may be referencing it. | +| `AssemblySemFileVer` | Suitable for .NET `AssemblyFileVersion`. Defaults to `Major.Minor.Patch.0`. | +| `InformationalVersion` | Suitable for .NET `AssemblyInformationalVersion`. Defaults to `FullSemVer` suffixed by `FullBuildMetaData`. | +| `FullSemVer` | The full, SemVer 2.0 compliant version number. | +| `BranchName` | The name of the checked out Git branch. | +| `EscapedBranchName` | Equal to `BranchName`, but with `/` replaced with `-`. | +| `Sha` | The SHA of the Git commit. | +| `ShortSha` | The `Sha` limited to 7 characters. | +| `VersionSourceSha` | The SHA of the commit used as version source. | +| `CommitsSinceVersionSource` | (Deprecated: use `VersionSourceDistance` instead) The number of commits since the version source. | +| `VersionSourceDistance` | The number of commits since the version source. | +| `CommitDate` | The ISO-8601 formatted date of the commit identified by `Sha`. | +| `UncommittedChanges` | The number of uncommitted changes present in the repository. | Depending on how and in which context GitVersion is executed (for instance within a [supported build server][build-servers]), the above version variables From 849db8a8918f3fe5372b45a8c0d1207e09ef3b40 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 1 Feb 2026 20:10:39 +0100 Subject: [PATCH 130/358] fix: sonarcloud issues --- .../Core/GitVersionExecutorTests.cs | 153 ++++-------------- src/GitVersion.Schema/Program.cs | 5 +- 2 files changed, 35 insertions(+), 123 deletions(-) diff --git a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs index 6c91e36915..c92503106a 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs @@ -21,6 +21,38 @@ public class GitVersionExecutorTests : TestBase private GitVersionCacheProvider gitVersionCacheProvider; private IServiceProvider sp; + private const string versionCacheFileContent = + """ + { + "AssemblySemFileVer": "4.10.3.0", + "AssemblySemVer": "4.10.3.0", + "BranchName": "feature/test", + "BuildMetaData": null, + "CommitDate": "2015-11-10T00:00:00.000Z", + "CommitsSinceVersionSource": 19, + "EscapedBranchName": "feature-test", + "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", + "FullSemVer": "4.10.3-test.19", + "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", + "Major": 4, + "MajorMinorPatch": "4.10.3", + "Minor": 10, + "Patch": 3, + "PreReleaseLabel": "test", + "PreReleaseLabelWithDash": "-test", + "PreReleaseNumber": 19, + "PreReleaseTag": "test.19", + "PreReleaseTagWithDash": "-test.19", + "SemVer": "4.10.3-test.19", + "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", + "ShortSha": "dd2a29af", + "UncommittedChanges": 0, + "VersionSourceDistance": 19, + "VersionSourceSha": "4.10.2", + "WeightedPreReleaseNumber": 19 + } + """; + [Test] public void CacheKeySameAfterReNormalizing() { @@ -99,37 +131,6 @@ public void CacheKeyForWorktree() [Test] public void CacheFileExistsOnDisk() { - const string versionCacheFileContent = """ - { - "AssemblySemFileVer": "4.10.3.0", - "AssemblySemVer": "4.10.3.0", - "BranchName": "feature/test", - "BuildMetaData": null, - "CommitDate": "2015-11-10T00:00:00.000Z", - "CommitsSinceVersionSource": 19, - "EscapedBranchName": "feature-test", - "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "FullSemVer": "4.10.3-test.19", - "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "Major": 4, - "MajorMinorPatch": "4.10.3", - "Minor": 10, - "Patch": 3, - "PreReleaseLabel": "test", - "PreReleaseLabelWithDash": "-test", - "PreReleaseNumber": 19, - "PreReleaseTag": "test.19", - "PreReleaseTagWithDash": "-test.19", - "SemVer": "4.10.3-test.19", - "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "ShortSha": "dd2a29af", - "UncommittedChanges": 0, - "VersionSourceDistance": 19, - "VersionSourceSha": "4.10.2", - "WeightedPreReleaseNumber": 19 - } - """; - var stringBuilder = new StringBuilder(); var logAppender = new TestLogAppender(Action); @@ -164,34 +165,6 @@ public void CacheFileExistsOnDisk() [Test] public void CacheFileExistsOnDiskWhenOverrideConfigIsSpecifiedVersionShouldBeDynamicallyCalculatedWithoutSavingInCache() { - const string versionCacheFileContent = """ - { - "AssemblySemFileVer": "4.10.3.0", - "AssemblySemVer": "4.10.3.0", - "BranchName": "feature/test", - "BuildMetaData": null, - "CommitDate": "2015-11-10T00:00:00.000Z", - "CommitsSinceVersionSource": 19, - "EscapedBranchName": "feature-test", - "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "FullSemVer": "4.10.3-test.19", - "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "Major": 4, - "Minor": 10, - "Patch": 3, - "PreReleaseLabel": "test", - "PreReleaseLabelWithDash": "-test", - "PreReleaseNumber": 19, - "PreReleaseTag": "test.19", - "PreReleaseTagWithDash": "-test.19", - "SemVer": "4.10.3-test.19", - "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "ShortSha": "dd2a29af", - "UncommittedChanges": 0, - "VersionSourceDistance": 19 - } - """; - using var fixture = new EmptyRepositoryFixture(); fixture.Repository.MakeACommit(); @@ -254,37 +227,6 @@ public void CacheFileIsMissing() [TestCase(ConfigurationFileLocator.DefaultAlternativeFileNameDotted)] public void ConfigChangeInvalidatesCache(string configFileName) { - const string versionCacheFileContent = """ - { - "AssemblySemFileVer": "4.10.3.0", - "AssemblySemVer": "4.10.3.0", - "BranchName": "feature/test", - "BuildMetaData": null, - "CommitDate": "2015-11-10T00:00:00.000Z", - "CommitsSinceVersionSource": 19, - "EscapedBranchName": "feature-test", - "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "FullSemVer": "4.10.3-test.19", - "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "Major": 4, - "MajorMinorPatch": "4.10.3", - "Minor": 10, - "Patch": 3, - "PreReleaseLabel": "test", - "PreReleaseLabelWithDash": "-test", - "PreReleaseNumber": 19, - "PreReleaseTag": "test.19", - "PreReleaseTagWithDash": "-test.19", - "SemVer": "4.10.3-test.19", - "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "ShortSha": "dd2a29af", - "UncommittedChanges": 0, - "VersionSourceDistance": 19, - "VersionSourceSha": "4.10.2", - "WeightedPreReleaseNumber": 19 - } - """; - using var fixture = new EmptyRepositoryFixture(); var gitVersionOptions = new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath }; @@ -317,37 +259,6 @@ public void ConfigChangeInvalidatesCache(string configFileName) [Test] public void NoCacheBypassesCache() { - const string versionCacheFileContent = """ - { - "AssemblySemFileVer": "4.10.3.0", - "AssemblySemVer": "4.10.3.0", - "BranchName": "feature/test", - "BuildMetaData": null, - "CommitDate": "2015-11-10T00:00:00.000Z", - "CommitsSinceVersionSource": 19, - "EscapedBranchName": "feature-test", - "FullBuildMetaData": "Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "FullSemVer": "4.10.3-test.19", - "InformationalVersion": "4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "Major": 4, - "MajorMinorPatch": "4.10.3", - "Minor": 10, - "Patch": 3, - "PreReleaseLabel": "test", - "PreReleaseLabelWithDash": "-test", - "PreReleaseNumber": 19, - "PreReleaseTag": "test.19", - "PreReleaseTagWithDash": "-test.19", - "SemVer": "4.10.3-test.19", - "Sha": "dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f", - "ShortSha": "dd2a29af", - "UncommittedChanges": 0, - "VersionSourceDistance": 19, - "VersionSourceSha": "4.10.2", - "WeightedPreReleaseNumber": 19 - } - """; - using var fixture = new EmptyRepositoryFixture(); var gitVersionOptions = new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath }; diff --git a/src/GitVersion.Schema/Program.cs b/src/GitVersion.Schema/Program.cs index 7b16cee361..7168af764c 100644 --- a/src/GitVersion.Schema/Program.cs +++ b/src/GitVersion.Schema/Program.cs @@ -29,7 +29,8 @@ } var builder = new JsonSchemaBuilder(); -builder.Schema("http://json-schema.org/draft-07/schema#"); +const string jsonSchemaUri = "https://json-schema.org/draft-07/schema#"; +builder.Schema(jsonSchemaUri); builder.Id($"https://gitversion.net/schemas/{schemaVersion}/GitVersion.configuration.json"); builder.Title($"GitVersion Configuration ({schemaVersion})"); builder.Description($"GitVersion configuration schema ({schemaVersion})"); @@ -42,7 +43,7 @@ configuration.PropertyNameResolver = PropertyNameResolvers.AsDeclared; builder = new(); -builder.Schema("http://json-schema.org/draft-07/schema#"); +builder.Schema(jsonSchemaUri); builder.Id($"https://gitversion.net/schemas/{schemaVersion}/GitVersion.json"); builder.Title("GitVersion version variables output"); builder.Description("GitVersion output schema"); From 6cbb0053c7302aee52a8e65a1466168adf8ad266 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 2 Feb 2026 14:34:26 +0100 Subject: [PATCH 131/358] docs(contributing): Add Git history and PR workflow guidelines Provides clear instructions for maintaining a linear commit history and rebasing feature branches. --- CONTRIBUTING.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ac82b46b95..31ecfb3096 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,6 +21,37 @@ Issues are also welcome, [failing tests](#writing-tests) are even more welcome. on how to improve the documentation and please include documentation updates with your PR. +### Git history & pull request updates + +We prefer a **linear commit history**. + +* Keep your branch **up to date by rebasing on `main`** (not by merging `main` into your branch). +* Prefer **atomic commits**: each commit should represent one logical change and leave the repo in a working state. +* **Don’t squash everything into one commit** by default. + Squash is fine when it helps you *create atomic commits* (for example, folding “fix tests” into the commit that introduced the tests). + +A typical workflow looks like: + +```shell +# update your local main +git fetch origin +git checkout main +git pull --ff-only + +# rebase your feature branch onto the latest main +git checkout my-feature +git rebase origin/main + +# if your branch is already on GitHub, you'll likely need a force push after rebasing +git push --force-with-lease +``` + +If you need to reorganize commits (split/merge/reword) before opening the PR, use an interactive rebase: + +```shell +git rebase -i origin/main +``` + ## How it works See [how it works](https://gitversion.net/docs/learn/how-it-works) in GitVersion's documentation From 118224813db8a29ecf23aa52f6b596588ac99a5e Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 2 Feb 2026 15:30:45 +0100 Subject: [PATCH 132/358] feat(ci): Add support for 'next' release branches Integrate 'next/*' branch pattern into CI workflows and build context. Renames `IsStableRelease` to `IsTaggedRelease` and includes `next` branches in its definition for clear release status. --- .github/workflows/ci.yml | 2 ++ .github/workflows/codeql-analysis.yml | 2 ++ .github/workflows/format.yml | 2 ++ .github/workflows/mkdocs.yml | 2 ++ .github/workflows/new-cli.yml | 2 ++ build/common/Lifetime/BuildLifetimeBase.cs | 4 +++- build/common/Utilities/BuildContextBase.cs | 5 +++-- build/common/Utilities/CakeHostExtensions.cs | 2 ++ build/common/Utilities/ContextExtensions.cs | 12 ++++++++++-- build/common/Utilities/DockerContextExtensions.cs | 6 ++++-- build/common/Utilities/Extensions.cs | 2 ++ build/docker/Tasks/DockerHubReadmePublish.cs | 2 +- build/docker/Tasks/DockerManifest.cs | 2 +- build/docker/Tasks/DockerPublish.cs | 2 +- build/docs/Tasks/PublishDocs.cs | 2 +- build/publish/Tasks/PublishChocolatey.cs | 2 +- build/publish/Tasks/PublishNuget.cs | 4 ++-- build/release/Tasks/PublishRelease.cs | 2 +- 18 files changed, 42 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a792e3c0b1..b3cc821a1f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,6 +8,7 @@ on: - 'feature/*' - 'poc/*' - 'support/*' + - 'next/*' paths: - '**' - '!docs/**' @@ -16,6 +17,7 @@ on: branches: - main - 'support/*' + - 'next/*' paths: - '**' - '!docs/**' diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index a7572aaacf..69a74c0e2e 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -5,6 +5,7 @@ on: branches: - main - 'support/*' + - 'next/*' paths: - '**' - '!docs/**' @@ -15,6 +16,7 @@ on: branches: - main - 'support/*' + - 'next/*' paths: - '**' - '!docs/**' diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 8c2ba5f079..390bd8adb3 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -7,6 +7,7 @@ on: - 'feature/*' - 'poc/*' - 'support/*' + - 'next/*' paths: - '**' - '!docs/**' @@ -17,6 +18,7 @@ on: branches: - main - 'support/*' + - 'next/*' paths: - '**' - '!docs/**' diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 526427a09b..596b189435 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -7,6 +7,7 @@ on: - 'feature/*' - 'poc/*' - 'support/*' + - 'next/*' paths: - 'docs/**' @@ -14,6 +15,7 @@ on: branches: - main - 'support/*' + - 'next/*' paths: - 'docs/**' diff --git a/.github/workflows/new-cli.yml b/.github/workflows/new-cli.yml index 07e9fea44a..2664bdbe51 100644 --- a/.github/workflows/new-cli.yml +++ b/.github/workflows/new-cli.yml @@ -7,6 +7,7 @@ on: - 'feature/*' - 'poc/*' - 'support/*' + - 'next/*' paths: - '**' - '!docs/**' @@ -17,6 +18,7 @@ on: branches: - main - 'support/*' + - 'next/*' paths: - '**' - '!docs/**' diff --git a/build/common/Lifetime/BuildLifetimeBase.cs b/build/common/Lifetime/BuildLifetimeBase.cs index 98a431ef65..efb1c32a2e 100644 --- a/build/common/Lifetime/BuildLifetimeBase.cs +++ b/build/common/Lifetime/BuildLifetimeBase.cs @@ -19,6 +19,7 @@ public override void Setup(T context, ISetupContext info) context.IsOriginalRepo = context.IsOriginalRepo(); context.IsMainBranch = context.IsMainBranch(); context.IsSupportBranch = context.IsSupportBranch(); + context.IsNextBranch = context.IsNextBranch(); context.IsTagged = context.IsTagged(); context.IsOnWindows = context.IsRunningOnWindows(); @@ -83,8 +84,9 @@ protected void LogBuildInformation(T context) context.Information($"Branch Name: {context.BranchName}"); context.Information($"Main Branch: {context.IsMainBranch}"); context.Information($"Support Branch: {context.IsSupportBranch}"); + context.Information($"Next Branch: {context.IsNextBranch}"); context.Information($"Tagged: {context.IsTagged}"); - context.Information($"IsStableRelease: {context.IsStableRelease}"); + context.Information($"IsTaggedRelease: {context.IsTaggedRelease}"); context.Information($"IsTaggedPreRelease: {context.IsTaggedPreRelease}"); context.Information($"IsInternalPreRelease: {context.IsInternalPreRelease}"); } diff --git a/build/common/Utilities/BuildContextBase.cs b/build/common/Utilities/BuildContextBase.cs index 93be1fc1b6..cbed3e8d51 100644 --- a/build/common/Utilities/BuildContextBase.cs +++ b/build/common/Utilities/BuildContextBase.cs @@ -10,6 +10,7 @@ public class BuildContextBase : FrostingContext public string RepositoryName { get; set; } = string.Empty; public bool IsMainBranch { get; set; } public bool IsSupportBranch { get; set; } + public bool IsNextBranch { get; set; } public bool IsPullRequest { get; set; } public bool IsTagged { get; set; } public bool IsLocalBuild { get; set; } @@ -18,8 +19,8 @@ public class BuildContextBase : FrostingContext public bool IsOnWindows { get; set; } public bool IsOnLinux { get; set; } public bool IsOnMacOS { get; set; } - public bool IsReleaseBranchOriginalRepo => !IsLocalBuild && IsOriginalRepo && (IsMainBranch || IsSupportBranch) && !IsPullRequest; - public bool IsStableRelease => IsReleaseBranchOriginalRepo && IsTagged && Version?.IsPreRelease == false; + public bool IsReleaseBranchOriginalRepo => !IsLocalBuild && IsOriginalRepo && (IsMainBranch || IsSupportBranch || IsNextBranch) && !IsPullRequest; + public bool IsTaggedRelease => IsReleaseBranchOriginalRepo && IsTagged && Version?.IsPreRelease == false; public bool IsTaggedPreRelease => IsReleaseBranchOriginalRepo && IsTagged && Version?.IsPreRelease == true; public bool IsInternalPreRelease => IsReleaseBranchOriginalRepo && IsGitHubActionsBuild; } diff --git a/build/common/Utilities/CakeHostExtensions.cs b/build/common/Utilities/CakeHostExtensions.cs index 92af69e789..61ba564d7d 100644 --- a/build/common/Utilities/CakeHostExtensions.cs +++ b/build/common/Utilities/CakeHostExtensions.cs @@ -2,6 +2,7 @@ namespace Common.Utilities; +#pragma warning disable S1144 public static class ServicesExtensions { extension(CakeHost host) @@ -25,3 +26,4 @@ public CakeHost InstallNugetTool(string toolName, string toolVersion) } } } +#pragma warning restore S1144 diff --git a/build/common/Utilities/ContextExtensions.cs b/build/common/Utilities/ContextExtensions.cs index 25b7394097..9012c7db83 100644 --- a/build/common/Utilities/ContextExtensions.cs +++ b/build/common/Utilities/ContextExtensions.cs @@ -5,6 +5,7 @@ namespace Common.Utilities; +#pragma warning disable S1144 public static class ContextExtensions { extension(ICakeContext context) @@ -41,16 +42,22 @@ public bool IsOriginalRepo() public bool IsMainBranch() { - var repositoryBranch = GetBranchName(context); + var repositoryBranch = context.GetBranchName(); return !string.IsNullOrWhiteSpace(repositoryBranch) && StringComparer.OrdinalIgnoreCase.Equals(Constants.DefaultBranch, repositoryBranch); } public bool IsSupportBranch() { - var repositoryBranch = GetBranchName(context); + var repositoryBranch = context.GetBranchName(); return !string.IsNullOrWhiteSpace(repositoryBranch) && repositoryBranch.StartsWith("support/", StringComparison.OrdinalIgnoreCase); } + public bool IsNextBranch() + { + var repositoryBranch = context.GetBranchName(); + return !string.IsNullOrWhiteSpace(repositoryBranch) && repositoryBranch.StartsWith("next/", StringComparison.OrdinalIgnoreCase); + } + public bool IsTagged() { var sha = context.ExecGitCmd("rev-parse --verify HEAD").Single(); @@ -192,3 +199,4 @@ public string GetRepositoryName() private void EndGroup(ICakeContext context) => context.Information("##[endgroup]"); } } +#pragma warning restore S1144 diff --git a/build/common/Utilities/DockerContextExtensions.cs b/build/common/Utilities/DockerContextExtensions.cs index 2eb3345d1f..eb8dd85a9d 100644 --- a/build/common/Utilities/DockerContextExtensions.cs +++ b/build/common/Utilities/DockerContextExtensions.cs @@ -10,6 +10,7 @@ public enum Architecture Amd64 } +#pragma warning disable S1144 public static class DockerContextExtensions { private static readonly string[] Annotations = @@ -169,7 +170,7 @@ private void DockerTestRun(string image, Architecture arch, string command, params string[] args) { ArgumentNullException.ThrowIfNull(context.Version?.GitVersion.FullSemVer); - var settings = GetDockerRunSettings(context, arch); + var settings = context.GetDockerRunSettings(arch); context.Information($"Testing image: {image}"); var output = context.DockerRun(settings, image, command, args); context.Information("Output : " + output); @@ -195,7 +196,7 @@ private IEnumerable GetDockerTags(DockerImage dockerImage, { tags.Add($"{name}:{context.Version.SemVersion}"); - if (context.IsStableRelease) + if (context.IsTaggedRelease) { tags.AddRange( [ @@ -279,3 +280,4 @@ .. Annotations.Select(a => "index:" + a).ToArray(), return settings; } } +#pragma warning restore S1144 diff --git a/build/common/Utilities/Extensions.cs b/build/common/Utilities/Extensions.cs index efe6216d88..2832666846 100644 --- a/build/common/Utilities/Extensions.cs +++ b/build/common/Utilities/Extensions.cs @@ -1,5 +1,6 @@ namespace Common.Utilities; +#pragma warning disable S1144 public static class Extensions { private static readonly char[] CharsThatRequireQuoting = [' ', '"']; @@ -115,3 +116,4 @@ public string EscapeProcessArgument(bool alwaysQuote = false) } } } +#pragma warning restore S1144 diff --git a/build/docker/Tasks/DockerHubReadmePublish.cs b/build/docker/Tasks/DockerHubReadmePublish.cs index 1cb840118c..69b5c14680 100644 --- a/build/docker/Tasks/DockerHubReadmePublish.cs +++ b/build/docker/Tasks/DockerHubReadmePublish.cs @@ -18,7 +18,7 @@ public override bool ShouldRun(BuildContext context) var shouldRun = true; if (context.DockerRegistry == DockerRegistry.DockerHub) { - shouldRun &= context.ShouldRun(context.IsStableRelease, $"{nameof(DockerHubReadmePublish)} works only for tagged releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease, $"{nameof(DockerHubReadmePublish)} works only for tagged releases."); } return shouldRun; diff --git a/build/docker/Tasks/DockerManifest.cs b/build/docker/Tasks/DockerManifest.cs index ae099f781b..4321c7614f 100644 --- a/build/docker/Tasks/DockerManifest.cs +++ b/build/docker/Tasks/DockerManifest.cs @@ -34,7 +34,7 @@ public override bool ShouldRun(BuildContext context) } if (context.DockerRegistry == DockerRegistry.DockerHub) { - shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease, $"{nameof(DockerPublish)} to DockerHub works only for tagged releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease || context.IsTaggedPreRelease, $"{nameof(DockerPublish)} to DockerHub works only for tagged releases."); } return shouldRun; diff --git a/build/docker/Tasks/DockerPublish.cs b/build/docker/Tasks/DockerPublish.cs index b230a4d59c..240e05dbed 100644 --- a/build/docker/Tasks/DockerPublish.cs +++ b/build/docker/Tasks/DockerPublish.cs @@ -35,7 +35,7 @@ public override bool ShouldRun(BuildContext context) } if (context.DockerRegistry == DockerRegistry.DockerHub) { - shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease, $"{nameof(DockerPublish)} to DockerHub works only for tagged releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease || context.IsTaggedPreRelease, $"{nameof(DockerPublish)} to DockerHub works only for tagged releases."); } return shouldRun; diff --git a/build/docs/Tasks/PublishDocs.cs b/build/docs/Tasks/PublishDocs.cs index 7fa1ce3c9a..2879204dbd 100644 --- a/build/docs/Tasks/PublishDocs.cs +++ b/build/docs/Tasks/PublishDocs.cs @@ -28,7 +28,7 @@ public override bool ShouldRun(BuildContext context) { var shouldRun = true; shouldRun &= context.ShouldRun(context.DirectoryExists(Paths.Docs), "Wyam documentation directory is missing"); - shouldRun &= context.ShouldRun(context.IsStableRelease || context.ForcePublish, $"{nameof(PublishDocs)} works only for releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease || context.ForcePublish, $"{nameof(PublishDocs)} works only for releases."); return shouldRun; } diff --git a/build/publish/Tasks/PublishChocolatey.cs b/build/publish/Tasks/PublishChocolatey.cs index 078f555dc0..1418a57cf3 100644 --- a/build/publish/Tasks/PublishChocolatey.cs +++ b/build/publish/Tasks/PublishChocolatey.cs @@ -18,7 +18,7 @@ public override bool ShouldRun(BuildContext context) var shouldRun = true; shouldRun &= context.ShouldRun(context.IsGitHubActionsBuild, $"{nameof(PublishChocolatey)} works only on GitHub Actions."); shouldRun &= context.ShouldRun(context.IsOnWindows, $"{nameof(PublishChocolatey)} works only on windows."); - shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease, $"{nameof(PublishChocolatey)} works only for tagged releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease || context.IsTaggedPreRelease, $"{nameof(PublishChocolatey)} works only for tagged releases."); return shouldRun; } diff --git a/build/publish/Tasks/PublishNuget.cs b/build/publish/Tasks/PublishNuget.cs index 28b177f0d7..f084a3a476 100644 --- a/build/publish/Tasks/PublishNuget.cs +++ b/build/publish/Tasks/PublishNuget.cs @@ -18,7 +18,7 @@ public override bool ShouldRun(BuildContext context) { var shouldRun = true; shouldRun &= context.ShouldRun(context.IsGitHubActionsBuild, $"{nameof(PublishNuget)} works only on GitHub Actions."); - shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease || context.IsInternalPreRelease, $"{nameof(PublishNuget)} works only for releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease || context.IsTaggedPreRelease || context.IsInternalPreRelease, $"{nameof(PublishNuget)} works only for releases."); return shouldRun; } @@ -40,7 +40,7 @@ public override async Task RunAsync(BuildContext context) } // publish to nuget.org for tagged releases - if (context.IsStableRelease || context.IsTaggedPreRelease) + if (context.IsTaggedRelease || context.IsTaggedPreRelease) { context.StartGroup("Publishing to Nuget.org"); var apiKey = context.Credentials?.Nuget?.ApiKey; diff --git a/build/release/Tasks/PublishRelease.cs b/build/release/Tasks/PublishRelease.cs index 7bbaf8ea9c..2e5a73812b 100644 --- a/build/release/Tasks/PublishRelease.cs +++ b/build/release/Tasks/PublishRelease.cs @@ -18,7 +18,7 @@ public override bool ShouldRun(BuildContext context) { var shouldRun = true; shouldRun &= context.ShouldRun(context.IsGitHubActionsBuild, $"{nameof(PublishRelease)} works only on GitHub Actions."); - shouldRun &= context.ShouldRun(context.IsStableRelease || context.IsTaggedPreRelease, $"{nameof(PublishRelease)} works only for tagged releases."); + shouldRun &= context.ShouldRun(context.IsTaggedRelease || context.IsTaggedPreRelease, $"{nameof(PublishRelease)} works only for tagged releases."); return shouldRun; } From cb544ed90b7c5b92d6ee7f86b19c81a40d8144ed Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Thu, 5 Feb 2026 13:33:50 +0100 Subject: [PATCH 133/358] ci(workflows): Upgrade macOS runner to macos-26 --- .github/workflows/_build.yml | 4 ++-- .github/workflows/_prepare.yml | 4 ++-- .github/workflows/_unit_tests.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/_build.yml b/.github/workflows/_build.yml index 7df2b27ba0..e8c0286999 100644 --- a/.github/workflows/_build.yml +++ b/.github/workflows/_build.yml @@ -4,14 +4,14 @@ on: env: DOTNET_INSTALL_DIR: "./.dotnet" DOTNET_ROLL_FORWARD: "Major" - + jobs: build: name: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [windows-2025, ubuntu-24.04, macos-15] + os: [windows-2025, ubuntu-24.04, macos-26] runs-on: ${{ matrix.os }} steps: diff --git a/.github/workflows/_prepare.yml b/.github/workflows/_prepare.yml index 5315575cd9..3c3ded468a 100644 --- a/.github/workflows/_prepare.yml +++ b/.github/workflows/_prepare.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - os: [windows-2025, ubuntu-24.04, macos-15] + os: [windows-2025, ubuntu-24.04, macos-26] runs-on: ${{ matrix.os }} steps: @@ -69,4 +69,4 @@ jobs: name: '[Matrix]' id: set_matrix shell: pwsh - run: dotnet run/config.dll --target=SetMatrix \ No newline at end of file + run: dotnet run/config.dll --target=SetMatrix diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index f12e689fc3..61d579b6a2 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ windows-2025, ubuntu-24.04, macos-15 ] + os: [ windows-2025, ubuntu-24.04, macos-26 ] dotnet_version: ${{ fromJson(inputs.dotnet_versions) }} runs-on: ${{ matrix.os }} From 767d4bfe19939be06f4f2541272f236d92d1c925 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 6 Feb 2026 18:55:38 +0100 Subject: [PATCH 134/358] fix(schema): Update JSON schema URI protocol Corrects the schema definition URI to use HTTP, ensuring proper resolution. --- src/GitVersion.Schema/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GitVersion.Schema/Program.cs b/src/GitVersion.Schema/Program.cs index 7168af764c..f391d74cc3 100644 --- a/src/GitVersion.Schema/Program.cs +++ b/src/GitVersion.Schema/Program.cs @@ -29,7 +29,7 @@ } var builder = new JsonSchemaBuilder(); -const string jsonSchemaUri = "https://json-schema.org/draft-07/schema#"; +const string jsonSchemaUri = "http://json-schema.org/draft-07/schema#"; builder.Schema(jsonSchemaUri); builder.Id($"https://gitversion.net/schemas/{schemaVersion}/GitVersion.configuration.json"); builder.Title($"GitVersion Configuration ({schemaVersion})"); From 45fa0c240750b5b477c845694e1ede584f48ed3b Mon Sep 17 00:00:00 2001 From: Jakub Date: Wed, 4 Feb 2026 08:13:09 +0100 Subject: [PATCH 135/358] feat: introduce VersionSourceSemVer output variable --- docs/input/docs/reference/variables.md | 2 + src/GitVersion.Core.Tests/CommitDateTests.cs | 1 + .../Core/GitVersionExecutorTests.cs | 3 ++ .../Helpers/TestableGitVersionVariables.cs | 54 ++++++++++--------- .../JsonVersionBuilderTests.Json.approved.txt | 1 + ...sDeliveryModeForFeatureBranch.approved.txt | 1 + ...hWithCustomAssemblyInfoFormat.approved.txt | 1 + ...uousDeliveryModeForPreRelease.approved.txt | 1 + ...ntinuousDeliveryModeForStable.approved.txt | 1 + ...deForMainBranchWithEmptyLabel.approved.txt | 1 + ...usDeploymentModeForPreRelease.approved.txt | 1 + ...inuousDeploymentModeForStable.approved.txt | 1 + ...ableWhenCurrentCommitIsTagged.approved.txt | 1 + .../JsonVersionBuilderTests.cs | 3 +- .../OutputVariables/GitVersionVariables.cs | 3 ++ src/GitVersion.Core/PublicAPI.Shipped.txt | 2 - src/GitVersion.Core/PublicAPI.Unshipped.txt | 11 +++- .../SemVer/SemanticVersionBuildMetaData.cs | 8 ++- .../Abstractions/IDeploymentModeCalculator.cs | 4 +- .../SemanticVersionFormatValues.cs | 2 + .../VersionCalculation/VariableProvider.cs | 1 + .../ContinuousDeliveryVersionCalculator.cs | 9 ++-- .../ContinuousDeploymentVersionCalculator.cs | 9 ++-- .../ManualDeploymentVersionCalculator.cs | 9 ++-- .../NextVersionCalculator.cs | 7 +-- .../VersionCalculatorBase.cs | 10 ++-- .../PublicAPI.Unshipped.txt | 2 + src/GitVersion.MsBuild/Tasks/GetVersion.cs | 3 ++ ...ileTests.UpdateWixVersionFile.approved.txt | 1 + ...sionFileWhenFileAlreadyExists.approved.txt | 1 + ...neratorTests.ShouldCreateFile.approved.txt | 1 + ...rlyOutputNamespaceDeclaration.approved.txt | 1 + ...neratorTests.ShouldCreateFile.approved.txt | 1 + ...rlyOutputNamespaceDeclaration.approved.txt | 1 + ...neratorTests.ShouldCreateFile.approved.txt | 1 + ...rlyOutputNamespaceDeclaration.approved.txt | 1 + .../Output/AssemblyInfoFileUpdaterTests.cs | 3 +- .../Output/GitVersionInfoGeneratorTests.cs | 6 ++- .../InformationalVersionBuilderTests.cs | 3 +- .../Output/ProjectFileUpdaterTests.cs | 4 +- .../Serializer/VersionVariablesJsonModel.cs | 3 ++ 41 files changed, 115 insertions(+), 64 deletions(-) diff --git a/docs/input/docs/reference/variables.md b/docs/input/docs/reference/variables.md index d4027f0172..661dac335c 100644 --- a/docs/input/docs/reference/variables.md +++ b/docs/input/docs/reference/variables.md @@ -32,6 +32,7 @@ what is available. For the `release/3.0.0` branch of GitVersion it shows: "EscapedBranchName": "release-3.022.011", "Sha": "28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", "ShortSha": "28c8531", + "VersionSourceSemVer": "3.22.11", "VersionSourceSha": "28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", "CommitsSinceVersionSource": 7, "VersionSourceDistance": 7, @@ -65,6 +66,7 @@ Each property of the above JSON document is described in the below table. | `EscapedBranchName` | Equal to `BranchName`, but with `/` replaced with `-`. | | `Sha` | The SHA of the Git commit. | | `ShortSha` | The `Sha` limited to 7 characters. | +| `VersionSourceSemVer` | The semantic version of the commit used as version source. | | `VersionSourceSha` | The SHA of the commit used as version source. | | `CommitsSinceVersionSource` | (Deprecated: use `VersionSourceDistance` instead) The number of commits since the version source. | | `VersionSourceDistance` | The number of commits since the version source. | diff --git a/src/GitVersion.Core.Tests/CommitDateTests.cs b/src/GitVersion.Core.Tests/CommitDateTests.cs index 2b0d94ebd6..fd0ce38758 100644 --- a/src/GitVersion.Core.Tests/CommitDateTests.cs +++ b/src/GitVersion.Core.Tests/CommitDateTests.cs @@ -15,6 +15,7 @@ public void CommitDateFormatTest(string format, string expectedOutcome) { var date = new DateTime(2017, 10, 6); var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData( + new SemanticVersion(1, 2, 2), "950d2f830f5a2af12a6779a48d20dcbb02351f25", 0, MainBranch, diff --git a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs index c92503106a..e84acefc01 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs @@ -420,6 +420,7 @@ public void CalculateVersionFromWorktreeHead() // Verify version.SemVer.ShouldBe("1.0.0"); + version.VersionSourceSemVer.ShouldBe("1.0.0"); var commits = worktreeFixture.Repository.Head.Commits; version.Sha.ShouldBe(commits.First().Sha); } @@ -483,6 +484,7 @@ public void CalculateVersionVariables_TwoBranchHasSameCommitHeadDetachedAndTagge // Verify version.SemVer.ShouldBe("1.0.1"); + version.VersionSourceSemVer.ShouldBe("1.0.1"); var commits = worktreeFixture.Repository.Head.Commits; version.Sha.ShouldBe(commits.First().Sha); } @@ -578,6 +580,7 @@ public void CalculateVersionVariables_WithLimitedCloneDepth_AndAllowShallowTrue_ // Verify that the correct commit is used version.Sha.ShouldBe(latestCommit.Sha); version.MajorMinorPatch.ShouldBe("2.0.0"); + version.VersionSourceSemVer.ShouldBe("1.0.0"); // Verify repository is still recognized as shallow var repository = this.sp.GetRequiredService(); diff --git a/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs b/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs index 0237f5b4ec..a23e8f46e8 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs @@ -2,29 +2,31 @@ namespace GitVersion.Core.Tests.Helpers; -internal record TestableGitVersionVariables() : GitVersionVariables("", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - ""); +internal record TestableGitVersionVariables() : GitVersionVariables( + Major: "", + Minor: "", + Patch: "", + BuildMetaData: "", + FullBuildMetaData: "", + BranchName: "", + EscapedBranchName: "", + Sha: "", + ShortSha: "", + MajorMinorPatch: "", + SemVer: "", + FullSemVer: "", + AssemblySemVer: "", + AssemblySemFileVer: "", + PreReleaseTag: "", + PreReleaseTagWithDash: "", + PreReleaseLabel: "", + PreReleaseLabelWithDash: "", + PreReleaseNumber: "", + WeightedPreReleaseNumber: "", + InformationalVersion: "", + CommitDate: "", + VersionSourceSemVer: "", + VersionSourceSha: "", + CommitsSinceVersionSource: "", + VersionSourceDistance: "", + UncommittedChanges: ""); diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt index 3e7054fe81..cc8743f21e 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceSemVer": "1.1.2", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 4 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt index 956347e9e5..5352bab7b4 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt index b1130e9f0b..96dac77be7 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt index c59b621163..fee70f4123 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 4 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt index b64bbdffe8..5971f82d87 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt index 60c3ee572d..e5cc41eaab 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 55009 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt index c6edf6f27b..c200cb21fa 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 8 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt index a0b1cf3bd9..1fae9482d2 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 5 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt index 215754d67e..0875361a4e 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 } \ No newline at end of file diff --git a/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs index 55c1298825..65315321af 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs @@ -13,13 +13,14 @@ public class JsonVersionBuilderTests : TestBase [Test] public void Json() { + var versionSourceSemVer = new SemanticVersion(1, 1, 2); var semanticVersion = new SemanticVersion { Major = 1, Minor = 2, Patch = 0, PreReleaseTag = "unstable4", - BuildMetaData = new("versionSourceSha", 5, "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z"), 0) + BuildMetaData = new(versionSourceSemVer, "versionSourceSha", 5, "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z"), 0) }; var serviceProvider = ConfigureServices(); diff --git a/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs b/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs index b594f74b1a..0a74e23463 100644 --- a/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs +++ b/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs @@ -22,6 +22,7 @@ public record GitVersionVariables(string Major, string WeightedPreReleaseNumber, string? InformationalVersion, string? CommitDate, + string? VersionSourceSemVer, string? VersionSourceSha, [property: Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] string? CommitsSinceVersionSource, @@ -52,6 +53,7 @@ public record GitVersionVariables(string Major, nameof(WeightedPreReleaseNumber), nameof(InformationalVersion), nameof(CommitDate), + nameof(VersionSourceSemVer), nameof(VersionSourceSha), nameof(CommitsSinceVersionSource), nameof(VersionSourceDistance), @@ -82,6 +84,7 @@ public record GitVersionVariables(string Major, { nameof(WeightedPreReleaseNumber), WeightedPreReleaseNumber }, { nameof(InformationalVersion), InformationalVersion }, { nameof(CommitDate), CommitDate }, + { nameof(VersionSourceSemVer), VersionSourceSemVer }, { nameof(VersionSourceSha), VersionSourceSha }, { nameof(CommitsSinceVersionSource), CommitsSinceVersionSource }, { nameof(VersionSourceDistance), VersionSourceDistance }, diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index 0f7b979f4e..fe1c3b54fb 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -585,7 +585,6 @@ GitVersion.SemanticVersionBuildMetaData.OtherMetaData.get -> string? GitVersion.SemanticVersionBuildMetaData.OtherMetaData.init -> void GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData() -> void GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData(GitVersion.SemanticVersionBuildMetaData! buildMetaData) -> void -GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData(string? versionSourceSha, long? commitsSinceTag, string? branch, string? commitSha, string? commitShortSha, System.DateTimeOffset? commitDate, long numberOfUnCommittedChanges, string? otherMetadata = null) -> void GitVersion.SemanticVersionBuildMetaData.Sha.get -> string? GitVersion.SemanticVersionBuildMetaData.Sha.init -> void GitVersion.SemanticVersionBuildMetaData.ShortSha.get -> string? @@ -726,7 +725,6 @@ GitVersion.VersionCalculation.IBaseVersionIncrement GitVersion.VersionCalculation.IBaseVersionIncrement.BaseVersionSource.get -> GitVersion.Git.ICommit? GitVersion.VersionCalculation.IBaseVersionIncrement.Source.get -> string! GitVersion.VersionCalculation.IDeploymentModeCalculator -GitVersion.VersionCalculation.IDeploymentModeCalculator.Calculate(GitVersion.SemanticVersion! semanticVersion, GitVersion.Git.ICommit? baseVersionSource) -> GitVersion.SemanticVersion! GitVersion.VersionCalculation.IEffectiveBranchConfigurationFinder GitVersion.VersionCalculation.IEffectiveBranchConfigurationFinder.GetConfigurations(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration) -> System.Collections.Generic.IEnumerable! GitVersion.VersionCalculation.IIncrementStrategyFinder diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index 13858b3344..67343e3ea4 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -1,8 +1,15 @@ #nullable enable -GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string! Major, out string! Minor, out string! Patch, out string? BuildMetaData, out string? FullBuildMetaData, out string? BranchName, out string? EscapedBranchName, out string? Sha, out string? ShortSha, out string! MajorMinorPatch, out string! SemVer, out string! FullSemVer, out string? AssemblySemVer, out string? AssemblySemFileVer, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string! WeightedPreReleaseNumber, out string? InformationalVersion, out string? CommitDate, out string? VersionSourceSha, out string? CommitsSinceVersionSource, out string? VersionSourceDistance, out string? UncommittedChanges) -> void -GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string! Major, string! Minor, string! Patch, string? BuildMetaData, string? FullBuildMetaData, string? BranchName, string? EscapedBranchName, string? Sha, string? ShortSha, string! MajorMinorPatch, string! SemVer, string! FullSemVer, string? AssemblySemVer, string? AssemblySemFileVer, string? PreReleaseTag, string? PreReleaseTagWithDash, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string! WeightedPreReleaseNumber, string? InformationalVersion, string? CommitDate, string? VersionSourceSha, string? CommitsSinceVersionSource, string? VersionSourceDistance, string? UncommittedChanges) -> void +GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string! Major, out string! Minor, out string! Patch, out string? BuildMetaData, out string? FullBuildMetaData, out string? BranchName, out string? EscapedBranchName, out string? Sha, out string? ShortSha, out string! MajorMinorPatch, out string! SemVer, out string! FullSemVer, out string? AssemblySemVer, out string? AssemblySemFileVer, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string! WeightedPreReleaseNumber, out string? InformationalVersion, out string? CommitDate, out string? VersionSourceSemVer, out string? VersionSourceSha, out string? CommitsSinceVersionSource, out string? VersionSourceDistance, out string? UncommittedChanges) -> void +GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string! Major, string! Minor, string! Patch, string? BuildMetaData, string? FullBuildMetaData, string? BranchName, string? EscapedBranchName, string? Sha, string? ShortSha, string! MajorMinorPatch, string! SemVer, string! FullSemVer, string? AssemblySemVer, string? AssemblySemFileVer, string? PreReleaseTag, string? PreReleaseTagWithDash, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string! WeightedPreReleaseNumber, string? InformationalVersion, string? CommitDate, string? VersionSourceSemVer, string? VersionSourceSha, string? CommitsSinceVersionSource, string? VersionSourceDistance, string? UncommittedChanges) -> void GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.get -> string? GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.init -> void +GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.get -> string? +GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.init -> void +GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData(GitVersion.SemanticVersion? versionSourceSemVer, string? versionSourceSha, long? commitsSinceTag, string? branch, string? commitSha, string? commitShortSha, System.DateTimeOffset? commitDate, long numberOfUnCommittedChanges, string? otherMetadata = null) -> void GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.get -> long GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.init -> void +GitVersion.SemanticVersionBuildMetaData.VersionSourceSemVer.get -> GitVersion.SemanticVersion? +GitVersion.SemanticVersionBuildMetaData.VersionSourceSemVer.init -> void GitVersion.SemanticVersionFormatValues.VersionSourceDistance.get -> string! +GitVersion.SemanticVersionFormatValues.VersionSourceSemVer.get -> string? +GitVersion.VersionCalculation.IDeploymentModeCalculator.Calculate(GitVersion.SemanticVersion! semanticVersion, GitVersion.VersionCalculation.IBaseVersion! baseVersion) -> GitVersion.SemanticVersion! diff --git a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs index b628f39b0e..7867ff111a 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs @@ -24,6 +24,8 @@ public class SemanticVersionBuildMetaData : IFormattable, IEquatable VersionSourceDistance; @@ -36,8 +38,8 @@ public SemanticVersionBuildMetaData() { } - public SemanticVersionBuildMetaData(string? versionSourceSha, long? commitsSinceTag, string? branch, string? commitSha, - string? commitShortSha, DateTimeOffset? commitDate, long numberOfUnCommittedChanges, string? otherMetadata = null) + public SemanticVersionBuildMetaData(SemanticVersion? versionSourceSemVer, string? versionSourceSha, long? commitsSinceTag, string? branch, + string? commitSha, string? commitShortSha, DateTimeOffset? commitDate, long numberOfUnCommittedChanges, string? otherMetadata = null) { this.Sha = commitSha; this.ShortSha = commitShortSha; @@ -45,6 +47,7 @@ public SemanticVersionBuildMetaData(string? versionSourceSha, long? commitsSince this.Branch = branch; this.CommitDate = commitDate; this.OtherMetaData = otherMetadata; + this.VersionSourceSemVer = versionSourceSemVer; this.VersionSourceSha = versionSourceSha; this.VersionSourceDistance = commitsSinceTag ?? 0; this.UncommittedChanges = numberOfUnCommittedChanges; @@ -60,6 +63,7 @@ public SemanticVersionBuildMetaData(SemanticVersionBuildMetaData buildMetaData) this.Branch = buildMetaData.Branch; this.CommitDate = buildMetaData.CommitDate; this.OtherMetaData = buildMetaData.OtherMetaData; + this.VersionSourceSemVer = buildMetaData.VersionSourceSemVer; this.VersionSourceSha = buildMetaData.VersionSourceSha; this.VersionSourceDistance = buildMetaData.VersionSourceDistance; this.UncommittedChanges = buildMetaData.UncommittedChanges; diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IDeploymentModeCalculator.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IDeploymentModeCalculator.cs index 28c6cec386..0d01bf512d 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IDeploymentModeCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IDeploymentModeCalculator.cs @@ -1,8 +1,6 @@ -using GitVersion.Git; - namespace GitVersion.VersionCalculation; public interface IDeploymentModeCalculator { - SemanticVersion Calculate(SemanticVersion semanticVersion, ICommit? baseVersionSource); + SemanticVersion Calculate(SemanticVersion semanticVersion, IBaseVersion baseVersion); } diff --git a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs index 3213c7df3b..b5338f7581 100644 --- a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs +++ b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs @@ -52,6 +52,8 @@ public class SemanticVersionFormatValues(SemanticVersion semver, IGitVersionConf public string InformationalVersion => semver.ToString("i"); + public string? VersionSourceSemVer => semver.BuildMetaData.VersionSourceSemVer?.ToString(); + public string? VersionSourceSha => semver.BuildMetaData.VersionSourceSha; [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] diff --git a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs index 4eda9e5b9d..faf0db6ad0 100644 --- a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs @@ -62,6 +62,7 @@ public GitVersionVariables GetVariablesFor( semverFormatValues.WeightedPreReleaseNumber, informationalVersion, semverFormatValues.CommitDate, + semverFormatValues.VersionSourceSemVer, semverFormatValues.VersionSourceSha, semverFormatValues.VersionSourceDistance, semverFormatValues.VersionSourceDistance, diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs index ca436a59d2..865ec5d917 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs @@ -1,5 +1,4 @@ using GitVersion.Common; -using GitVersion.Git; using GitVersion.Logging; namespace GitVersion.VersionCalculation; @@ -8,7 +7,7 @@ internal sealed class ContinuousDeliveryVersionCalculator( ILog log, IRepositoryStore repositoryStore, Lazy versionContext) : VersionCalculatorBase(log, repositoryStore, versionContext), IDeploymentModeCalculator { - public SemanticVersion Calculate(SemanticVersion semanticVersion, ICommit? baseVersionSource) + public SemanticVersion Calculate(SemanticVersion semanticVersion, IBaseVersion baseVersion) { using (this.log.IndentLog("Using continuous delivery workflow to calculate the incremented version.")) { @@ -18,13 +17,13 @@ public SemanticVersion Calculate(SemanticVersion semanticVersion, ICommit? baseV throw new WarningException("Continuous delivery requires a pre-release tag."); } - return CalculateInternal(semanticVersion, baseVersionSource); + return CalculateInternal(semanticVersion, baseVersion); } } - private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, ICommit? baseVersionSource) + private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, IBaseVersion baseVersion) { - var buildMetaData = CreateVersionBuildMetaData(baseVersionSource); + var buildMetaData = CreateVersionBuildMetaData(baseVersion); return new SemanticVersion(semanticVersion) { diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs index 7337f99b78..deeb94fe9a 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs @@ -1,5 +1,4 @@ using GitVersion.Common; -using GitVersion.Git; using GitVersion.Logging; namespace GitVersion.VersionCalculation; @@ -8,17 +7,17 @@ internal sealed class ContinuousDeploymentVersionCalculator( ILog log, IRepositoryStore repositoryStore, Lazy versionContext) : VersionCalculatorBase(log, repositoryStore, versionContext), IDeploymentModeCalculator { - public SemanticVersion Calculate(SemanticVersion semanticVersion, ICommit? baseVersionSource) + public SemanticVersion Calculate(SemanticVersion semanticVersion, IBaseVersion baseVersion) { using (this.log.IndentLog("Using continuous deployment workflow to calculate the incremented version.")) { - return CalculateInternal(semanticVersion, baseVersionSource); + return CalculateInternal(semanticVersion, baseVersion); } } - private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, ICommit? baseVersionSource) + private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, IBaseVersion baseVersion) { - var buildMetaData = CreateVersionBuildMetaData(baseVersionSource); + var buildMetaData = CreateVersionBuildMetaData(baseVersion); return new SemanticVersion(semanticVersion) { diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs index 537ee7b360..d13b586c3e 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs @@ -1,5 +1,4 @@ using GitVersion.Common; -using GitVersion.Git; using GitVersion.Logging; namespace GitVersion.VersionCalculation; @@ -8,17 +7,17 @@ internal sealed class ManualDeploymentVersionCalculator( ILog log, IRepositoryStore repositoryStore, Lazy versionContext) : VersionCalculatorBase(log, repositoryStore, versionContext), IDeploymentModeCalculator { - public SemanticVersion Calculate(SemanticVersion semanticVersion, ICommit? baseVersionSource) + public SemanticVersion Calculate(SemanticVersion semanticVersion, IBaseVersion baseVersion) { using (this.log.IndentLog("Using manual deployment workflow to calculate the incremented version.")) { - return CalculateInternal(semanticVersion, baseVersionSource); + return CalculateInternal(semanticVersion, baseVersion); } } - private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, ICommit? baseVersionSource) + private SemanticVersion CalculateInternal(SemanticVersion semanticVersion, IBaseVersion baseVersion) { - var buildMetaData = CreateVersionBuildMetaData(baseVersionSource); + var buildMetaData = CreateVersionBuildMetaData(baseVersion); return new SemanticVersion(semanticVersion) { diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs index fc38d26801..2de9cde156 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs @@ -73,7 +73,7 @@ public virtual SemanticVersion FindVersion() var semanticVersion = CalculateSemanticVersion( deploymentMode: nextVersion.Configuration.DeploymentMode, semanticVersion: nextVersion.IncrementedVersion, - baseVersionSource: nextVersion.BaseVersion.BaseVersionSource + baseVersion: nextVersion.BaseVersion ); var ignore = Context.Configuration.Ignore; @@ -114,6 +114,7 @@ private bool TryGetSemanticVersion( if (currentCommitTaggedVersion is null) return result is not null; SemanticVersionBuildMetaData semanticVersionBuildMetaData = new( + versionSourceSemVer: currentCommitTaggedVersion.Value, versionSourceSha: Context.CurrentCommit.Sha, commitsSinceTag: null, branch: Context.CurrentBranch.Name.Friendly, @@ -139,7 +140,7 @@ private bool TryGetSemanticVersion( } private SemanticVersion CalculateSemanticVersion( - DeploymentMode deploymentMode, SemanticVersion semanticVersion, ICommit? baseVersionSource) + DeploymentMode deploymentMode, SemanticVersion semanticVersion, IBaseVersion baseVersion) { IDeploymentModeCalculator deploymentModeCalculator = deploymentMode switch { @@ -148,7 +149,7 @@ private SemanticVersion CalculateSemanticVersion( DeploymentMode.ContinuousDeployment => deploymentModeCalculators.SingleOfType(), _ => throw new InvalidEnumArgumentException(nameof(deploymentMode), (int)deploymentMode, typeof(DeploymentMode)) }; - return deploymentModeCalculator.Calculate(semanticVersion, baseVersionSource); + return deploymentModeCalculator.Calculate(semanticVersion, baseVersion); } private NextVersion CalculateNextVersion(IBranch branch, IGitVersionConfiguration configuration) diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs index db6c3eb135..c565628acb 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs @@ -1,6 +1,5 @@ using GitVersion.Common; using GitVersion.Extensions; -using GitVersion.Git; using GitVersion.Logging; namespace GitVersion.VersionCalculation; @@ -14,20 +13,21 @@ internal abstract class VersionCalculatorBase( protected GitVersionContext Context => this.versionContext.Value; - protected SemanticVersionBuildMetaData CreateVersionBuildMetaData(ICommit? baseVersionSource) + protected SemanticVersionBuildMetaData CreateVersionBuildMetaData(IBaseVersion baseVersion) { var commitLogs = this.repositoryStore.GetCommitLog( - baseVersionSource: baseVersionSource, + baseVersionSource: baseVersion.BaseVersionSource, currentCommit: Context.CurrentCommit, ignore: Context.Configuration.Ignore ); var commitsSinceTag = commitLogs.Count; - this.log.Info($"{commitsSinceTag} commits found between {baseVersionSource} and {Context.CurrentCommit}"); + this.log.Info($"{commitsSinceTag} commits found between {baseVersion.BaseVersionSource} and {Context.CurrentCommit}"); var shortSha = Context.CurrentCommit.Id.ToString(7); return new SemanticVersionBuildMetaData( - versionSourceSha: baseVersionSource?.Sha, + versionSourceSemVer: baseVersion.SemanticVersion, + versionSourceSha: baseVersion.BaseVersionSource?.Sha, commitsSinceTag: commitsSinceTag, branch: Context.CurrentBranch.Name.Friendly, commitSha: Context.CurrentCommit.Sha, diff --git a/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt b/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt index 8baadd300b..2c80d73e04 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt @@ -1,3 +1,5 @@ #nullable enable GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.get -> string! GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.set -> void +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSemVer.get -> string! +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSemVer.set -> void diff --git a/src/GitVersion.MsBuild/Tasks/GetVersion.cs b/src/GitVersion.MsBuild/Tasks/GetVersion.cs index 99fb5c835f..6f1b16ed58 100644 --- a/src/GitVersion.MsBuild/Tasks/GetVersion.cs +++ b/src/GitVersion.MsBuild/Tasks/GetVersion.cs @@ -70,6 +70,9 @@ public class GetVersion : GitVersionTaskBase [Output] public string CommitDate { get; set; } + [Output] + public string VersionSourceSemVer { get; set; } + [Output] public string VersionSourceSha { get; set; } diff --git a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt index 7944b3643f..611dfa6800 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt @@ -24,6 +24,7 @@ + \ No newline at end of file diff --git a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt index 7944b3643f..611dfa6800 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt @@ -24,6 +24,7 @@ + \ No newline at end of file diff --git a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 0fa7320008..e7145c77f7 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -36,6 +36,7 @@ static class GitVersionInformation public const string ShortSha = "commitShortSha"; public const string UncommittedChanges = "0"; public const string VersionSourceDistance = "5"; + public const string VersionSourceSemVer = "1.2.2"; public const string VersionSourceSha = "versionSourceSha"; public const string WeightedPreReleaseNumber = "4"; } diff --git a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 1e0c4b4c5a..9be73f8071 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -38,6 +38,7 @@ namespace My.Custom.Namespace public const string ShortSha = "commitShortSha"; public const string UncommittedChanges = "0"; public const string VersionSourceDistance = "5"; + public const string VersionSourceSemVer = "1.2.2"; public const string VersionSourceSha = "versionSourceSha"; public const string WeightedPreReleaseNumber = "4"; } diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 42634dd993..bc89595b19 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -38,5 +38,6 @@ type GitVersionInformation = static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" static member VersionSourceDistance = "5" + static member VersionSourceSemVer = "1.2.2" static member VersionSourceSha = "versionSourceSha" static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 354146d95e..efc9660783 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -38,5 +38,6 @@ type GitVersionInformation = static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" static member VersionSourceDistance = "5" + static member VersionSourceSemVer = "1.2.2" static member VersionSourceSha = "versionSourceSha" static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 2c704a9e3c..945890ec97 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -39,6 +39,7 @@ Namespace Global Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" Public Shared VersionSourceDistance As String = "5" + Public Shared VersionSourceSemVer As String = "1.2.2" Public Shared VersionSourceSha As String = "versionSourceSha" Public Shared WeightedPreReleaseNumber As String = "4" End Class diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 721167f539..32845a9b3f 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -39,6 +39,7 @@ Namespace My.Custom.Namespace Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" Public Shared VersionSourceDistance As String = "5" + Public Shared VersionSourceSemVer As String = "1.2.2" Public Shared VersionSourceSha As String = "versionSourceSha" Public Shared WeightedPreReleaseNumber As String = "4" End Class diff --git a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs index 90d7cf0c93..c6c64e7967 100644 --- a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs @@ -421,7 +421,8 @@ private void VerifyAssemblyInfoFile( Action? verify = null) { var file = Substitute.For(); - var version = new SemanticVersion { BuildMetaData = new("versionSourceHash", 3, "foo", "hash", "shortHash", DateTimeOffset.Now, 0), Major = 2, Minor = 3, Patch = 1 }; + var versionSourceSemVer = new SemanticVersion(1, 2, 2); + var version = new SemanticVersion { BuildMetaData = new(versionSourceSemVer, "versionSourceHash", 3, "foo", "hash", "shortHash", DateTimeOffset.Now, 0), Major = 2, Minor = 3, Patch = 1 }; file.Exists(fileName).Returns(true); file.ReadAllText(fileName).Returns(assemblyFileContent); diff --git a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs index 920627d8c5..b69438e001 100644 --- a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs +++ b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs @@ -19,13 +19,14 @@ public class GitVersionInfoGeneratorTests : TestBase [TestCase("vb")] public void ShouldCreateFile(string fileExtension) { + var versionSourceSemVer = new SemanticVersion(1, 2, 2); var semanticVersion = new SemanticVersion { Major = 1, Minor = 2, Patch = 3, PreReleaseTag = "unstable4", - BuildMetaData = new("versionSourceSha", 5, + BuildMetaData = new(versionSourceSemVer, "versionSourceSha", 5, "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z"), 0) }; @@ -60,13 +61,14 @@ public void ShouldProperlyOutputNamespaceDeclaration(string fileExtension) { const string targetNamespace = "My.Custom.Namespace"; + var versionSourceSemVer = new SemanticVersion(1, 2, 2); var semanticVersion = new SemanticVersion { Major = 1, Minor = 2, Patch = 3, PreReleaseTag = "unstable4", - BuildMetaData = new("versionSourceSha", 5, + BuildMetaData = new(versionSourceSemVer, "versionSourceSha", 5, "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z"), 0) }; diff --git a/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs b/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs index c3774d24b1..64af5fb236 100644 --- a/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs +++ b/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs @@ -21,13 +21,14 @@ public class InformationalVersionBuilderTests : TestBase public void ValidateInformationalVersionBuilder(string branchName, string sha, string shortSha, int major, int minor, int patch, string? tag, string? versionSourceSha, int? commitsSinceTag, string versionString) { + var versionSourceSemVer = new SemanticVersion(1, 1, 1); var semanticVersion = new SemanticVersion { Major = major, Minor = minor, Patch = patch, PreReleaseTag = tag, - BuildMetaData = new(versionSourceSha, commitsSinceTag, branchName, sha, shortSha, DateTimeOffset.MinValue, 0) + BuildMetaData = new(versionSourceSemVer, versionSourceSha, commitsSinceTag, branchName, sha, shortSha, DateTimeOffset.MinValue, 0) }; var informationalVersion = semanticVersion.ToString("i"); diff --git a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs index d2f340a1f6..b8238d6668 100644 --- a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs @@ -306,7 +306,9 @@ private void VerifyAssemblyInfoFile( Action? verify = null) { var file = Substitute.For(); - var version = new SemanticVersion { BuildMetaData = new("versionSourceHash", 3, "foo", "hash", "shortHash", DateTimeOffset.Now, 0), Major = 2, Minor = 3, Patch = 1 }; + var versionSourceSemVer = new SemanticVersion(1, 2, 2); + + var version = new SemanticVersion { BuildMetaData = new(versionSourceSemVer, "versionSourceHash", 3, "foo", "hash", "shortHash", DateTimeOffset.Now, 0), Major = 2, Minor = 3, Patch = 1 }; file.Exists(fileName).Returns(true); file.ReadAllText(fileName).Returns(projectFileContent); diff --git a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs index 72c1e859c4..db2705ffa0 100644 --- a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs +++ b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs @@ -77,6 +77,9 @@ internal class VersionVariablesJsonModel [JsonPropertyDescription("The number of commits since the version source.")] public int? VersionSourceDistance { get; set; } + [JsonPropertyDescription("The semantic version of the commit used as version source.")] + public string? VersionSourceSemVer { get; set; } + [JsonPropertyDescription("The SHA of the commit used as version source.")] public string? VersionSourceSha { get; set; } From 29839bdffd4543b28ffebf8eb4523c088400f3a8 Mon Sep 17 00:00:00 2001 From: Jakub Date: Wed, 4 Feb 2026 08:28:02 +0100 Subject: [PATCH 136/358] tests: implement add culture info suggestion --- .../Output/GitVersionInfoGeneratorTests.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs index b69438e001..a4d5cc7f3e 100644 --- a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs +++ b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.IO.Abstractions; using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; @@ -27,7 +28,7 @@ public void ShouldCreateFile(string fileExtension) Patch = 3, PreReleaseTag = "unstable4", BuildMetaData = new(versionSourceSemVer, "versionSourceSha", 5, - "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z"), 0) + "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture), 0) }; var sp = ConfigureServices(); @@ -69,7 +70,7 @@ public void ShouldProperlyOutputNamespaceDeclaration(string fileExtension) Patch = 3, PreReleaseTag = "unstable4", BuildMetaData = new(versionSourceSemVer, "versionSourceSha", 5, - "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z"), 0) + "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture), 0) }; var sp = ConfigureServices(); From e01d3f4c104c20fb8d17b822890f9cfc6ef1ee33 Mon Sep 17 00:00:00 2001 From: Jakub Date: Wed, 4 Feb 2026 09:09:23 +0100 Subject: [PATCH 137/358] build: Expose VersionSourceSemVer in MSBuild targets --- src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets index 77fa353fbe..c1b6dadb29 100644 --- a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets +++ b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets @@ -61,6 +61,7 @@ + @@ -103,6 +104,7 @@ GitVersion_ShortSha=$(GitVersion_ShortSha);$(DefineConstants) GitVersion_CommitDate=$(GitVersion_CommitDate);$(DefineConstants) GitVersion_VersionSourceSha=$(GitVersion_VersionSourceSha);$(DefineConstants) + GitVersion_VersionSourceSemVer=$(GitVersion_VersionSourceSemVer);$(DefineConstants) GitVersion_CommitsSinceVersionSource=$(GitVersion_CommitsSinceVersionSource);$(DefineConstants) GitVersion_VersionSourceDistance=$(GitVersion_VersionSourceDistance);$(DefineConstants) GitVersion_UncommittedChanges=$(GitVersion_UncommittedChanges);$(DefineConstants) From d08b0bce02d19c1607568b8619cdc8908a8acd4a Mon Sep 17 00:00:00 2001 From: Jakub Date: Wed, 4 Feb 2026 10:19:59 +0100 Subject: [PATCH 138/358] test: refactor to remove code duplication --- .../Output/GitVersionInfoGeneratorTests.cs | 88 ++++++++++--------- 1 file changed, 45 insertions(+), 43 deletions(-) diff --git a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs index a4d5cc7f3e..eaac1c65d0 100644 --- a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs +++ b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs @@ -20,36 +20,9 @@ public class GitVersionInfoGeneratorTests : TestBase [TestCase("vb")] public void ShouldCreateFile(string fileExtension) { - var versionSourceSemVer = new SemanticVersion(1, 2, 2); - var semanticVersion = new SemanticVersion - { - Major = 1, - Minor = 2, - Patch = 3, - PreReleaseTag = "unstable4", - BuildMetaData = new(versionSourceSemVer, "versionSourceSha", 5, - "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture), 0) - }; - - var sp = ConfigureServices(); - - var fileSystem = sp.GetRequiredService(); - - var directory = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "GitVersionInfoGeneratorTests", Guid.NewGuid().ToString()); - if (!fileSystem.Directory.Exists(directory)) - fileSystem.Directory.CreateDirectory(directory); - var fileName = "GitVersionInformation.g." + fileExtension; - var fullPath = FileSystemHelper.Path.Combine(directory, fileName); - - var variableProvider = sp.GetRequiredService(); - var variables = variableProvider.GetVariablesFor(semanticVersion, EmptyConfigurationBuilder.New.Build(), 0); - using var generator = sp.GetRequiredService(); - - generator.Execute(variables, new(directory, fileName)); - - fileSystem.File.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); + var fileContents = GenerateGitVersionInformationFile(fileExtension); - FileSystemHelper.Directory.DeleteDirectory(directory); + fileContents.ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); } /// @@ -62,35 +35,64 @@ public void ShouldProperlyOutputNamespaceDeclaration(string fileExtension) { const string targetNamespace = "My.Custom.Namespace"; + var fileContents = GenerateGitVersionInformationFile(fileExtension, targetNamespace); + + fileContents.ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); + } + + private static SemanticVersion CreateSemanticVersion() + { var versionSourceSemVer = new SemanticVersion(1, 2, 2); - var semanticVersion = new SemanticVersion + return new SemanticVersion { Major = 1, Minor = 2, Patch = 3, PreReleaseTag = "unstable4", - BuildMetaData = new(versionSourceSemVer, "versionSourceSha", 5, - "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture), 0) + BuildMetaData = new( + versionSourceSemVer, + "versionSourceSha", + 5, + "feature1", + "commitSha", + "commitShortSha", + DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture), + 0) }; + } - var sp = ConfigureServices(); - - var fileSystem = sp.GetRequiredService(); - - var directory = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "GitVersionInfoGeneratorTests", Guid.NewGuid().ToString()); + private static (string Directory, string FileName, string FullPath) CreateTempOutputPath(IFileSystem fileSystem, string fileExtension) + { + var directory = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), nameof(GitVersionInfoGeneratorTests), Guid.NewGuid().ToString()); if (!fileSystem.Directory.Exists(directory)) fileSystem.Directory.CreateDirectory(directory); + var fileName = "GitVersionInformation.g." + fileExtension; var fullPath = FileSystemHelper.Path.Combine(directory, fileName); + return (directory, fileName, fullPath); + } - var variableProvider = sp.GetRequiredService(); - var variables = variableProvider.GetVariablesFor(semanticVersion, EmptyConfigurationBuilder.New.Build(), 0); - using var generator = sp.GetRequiredService(); + private string GenerateGitVersionInformationFile(string fileExtension, string? targetNamespace = null) + { + var semanticVersion = CreateSemanticVersion(); - generator.Execute(variables, new(directory, fileName, targetNamespace)); + var sp = ConfigureServices(); + var fileSystem = sp.GetRequiredService(); + + var (directory, fileName, fullPath) = CreateTempOutputPath(fileSystem, fileExtension); + try + { + var variables = sp.GetRequiredService() + .GetVariablesFor(semanticVersion, EmptyConfigurationBuilder.New.Build(), 0); - fileSystem.File.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); + using var generator = sp.GetRequiredService(); + generator.Execute(variables, new(directory, fileName, targetNamespace)); - FileSystemHelper.Directory.DeleteDirectory(directory); + return fileSystem.File.ReadAllText(fullPath); + } + finally + { + FileSystemHelper.Directory.DeleteDirectory(directory); + } } } From 4c6dcc8f33ffbdbfb49c1f80a0357f1c4c2de6d2 Mon Sep 17 00:00:00 2001 From: Jakub Date: Fri, 6 Feb 2026 12:13:11 +0100 Subject: [PATCH 139/358] test: fix failing tests --- src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs | 1 + .../Output/GitVersionInfoGeneratorTests.cs | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs index e84acefc01..8f36a4f0c0 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs @@ -48,6 +48,7 @@ public class GitVersionExecutorTests : TestBase "ShortSha": "dd2a29af", "UncommittedChanges": 0, "VersionSourceDistance": 19, + "VersionSourceSemVer": "4.10.2", "VersionSourceSha": "4.10.2", "WeightedPreReleaseNumber": 19 } diff --git a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs index eaac1c65d0..a98537f3dc 100644 --- a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs +++ b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs @@ -63,7 +63,11 @@ private static SemanticVersion CreateSemanticVersion() private static (string Directory, string FileName, string FullPath) CreateTempOutputPath(IFileSystem fileSystem, string fileExtension) { - var directory = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), nameof(GitVersionInfoGeneratorTests), Guid.NewGuid().ToString()); + var directory = FileSystemHelper.Path.Combine( + FileSystemHelper.Path.GetTempPath(), + nameof(GitVersionInfoGeneratorTests), + Guid.NewGuid().ToString()); + if (!fileSystem.Directory.Exists(directory)) fileSystem.Directory.CreateDirectory(directory); @@ -72,7 +76,7 @@ private static (string Directory, string FileName, string FullPath) CreateTempOu return (directory, fileName, fullPath); } - private string GenerateGitVersionInformationFile(string fileExtension, string? targetNamespace = null) + private static string GenerateGitVersionInformationFile(string fileExtension, string? targetNamespace = null) { var semanticVersion = CreateSemanticVersion(); From 7cd6fe884fe03fb0300adc0370f3ec523d9059b5 Mon Sep 17 00:00:00 2001 From: Jakub Date: Wed, 4 Feb 2026 08:13:09 +0100 Subject: [PATCH 140/358] feat: introduce VersionSourceSemVer output variable --- .../Output/GitVersionInfoGeneratorTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs index a98537f3dc..916d6d774f 100644 --- a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs +++ b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs @@ -99,4 +99,4 @@ private static string GenerateGitVersionInformationFile(string fileExtension, st FileSystemHelper.Directory.DeleteDirectory(directory); } } -} +} \ No newline at end of file From 10c67166039633b95f40db442adb319dfb69266a Mon Sep 17 00:00:00 2001 From: Jakub Date: Sat, 7 Feb 2026 12:05:11 +0100 Subject: [PATCH 141/358] fix: test formatting --- .../Output/GitVersionInfoGeneratorTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs index 916d6d774f..a98537f3dc 100644 --- a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs +++ b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs @@ -99,4 +99,4 @@ private static string GenerateGitVersionInformationFile(string fileExtension, st FileSystemHelper.Directory.DeleteDirectory(directory); } } -} \ No newline at end of file +} From ae0620a70f1a113becd74e9b6e1a15c16b3b5a57 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 8 Feb 2026 12:56:41 +0000 Subject: [PATCH 142/358] (deps): Bump JsonSchema.Net.Generation from 7.0.0 to 7.0.1 --- updated-dependencies: - dependency-name: JsonSchema.Net.Generation dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 23f6ee0a8d..8dc59977ca 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -20,7 +20,7 @@ - + From e1b34c85a088a5d9796468ff64c5310d625a2d9e Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sun, 8 Feb 2026 12:40:16 +0100 Subject: [PATCH 143/358] refactor(serializer): utilize source-generated JSON context for serialization Replaces manual `JsonSerializerOptions` configuration with source-generated `VersionVariablesJsonContext` for improved maintainability and performance. Removes obsolete private `JsonSerializerOptions` method and integrates the generated context in JSON methods. --- .../Serializer/VersionVariableSerializer.cs | 10 ++-------- .../Serializer/VersionVariablesJsonContext.cs | 18 ++++++++++++++++++ .../VersionVariablesJsonStringConverter.cs | 6 ++++++ 3 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 src/GitVersion.Output/Serializer/VersionVariablesJsonContext.cs diff --git a/src/GitVersion.Output/Serializer/VersionVariableSerializer.cs b/src/GitVersion.Output/Serializer/VersionVariableSerializer.cs index eb5c7fc536..af5c40bbc6 100644 --- a/src/GitVersion.Output/Serializer/VersionVariableSerializer.cs +++ b/src/GitVersion.Output/Serializer/VersionVariableSerializer.cs @@ -1,5 +1,4 @@ using System.IO.Abstractions; -using System.Text.Encodings.Web; using GitVersion.Extensions; using GitVersion.Helpers; @@ -9,8 +8,7 @@ internal class VersionVariableSerializer(IFileSystem fileSystem) : IVersionVaria { public static GitVersionVariables FromJson(string json) { - var serializeOptions = JsonSerializerOptions(); - var variablePairs = JsonSerializer.Deserialize>(json, serializeOptions); + var variablePairs = JsonSerializer.Deserialize(json, VersionVariablesJsonContext.Custom.DictionaryStringString); return FromDictionary(variablePairs); } @@ -25,9 +23,7 @@ public string ToJson(GitVersionVariables gitVersionVariables) propertyInfo?.SetValue(variables, ChangeType(value, propertyInfo.PropertyType)); } - var serializeOptions = JsonSerializerOptions(); - - return JsonSerializer.Serialize(variables, serializeOptions); + return JsonSerializer.Serialize(variables, VersionVariablesJsonContext.Custom.VersionVariablesJsonModel); } public GitVersionVariables FromFile(string filePath) @@ -94,8 +90,6 @@ private void ToFileInternal(GitVersionVariables gitVersionVariables, string file fileSystem.File.WriteAllText(filePath, json); } - private static JsonSerializerOptions JsonSerializerOptions() => new() { WriteIndented = true, Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, Converters = { new VersionVariablesJsonStringConverter() } }; - private static object? ChangeType(object? value, Type type) { if (!type.IsGenericType || type.GetGenericTypeDefinition() != typeof(Nullable<>)) return Convert.ChangeType(value, type); diff --git a/src/GitVersion.Output/Serializer/VersionVariablesJsonContext.cs b/src/GitVersion.Output/Serializer/VersionVariablesJsonContext.cs new file mode 100644 index 0000000000..7eda33dbe8 --- /dev/null +++ b/src/GitVersion.Output/Serializer/VersionVariablesJsonContext.cs @@ -0,0 +1,18 @@ +using System.Text.Encodings.Web; + +namespace GitVersion.OutputVariables; + +[JsonSourceGenerationOptions( + WriteIndented = true, + DefaultIgnoreCondition = JsonIgnoreCondition.Never, + Converters = [typeof(VersionVariablesJsonStringConverter)])] +[JsonSerializable(typeof(VersionVariablesJsonModel))] +[JsonSerializable(typeof(Dictionary))] +internal partial class VersionVariablesJsonContext : JsonSerializerContext +{ + public static VersionVariablesJsonContext Custom => field ??= new VersionVariablesJsonContext( + new JsonSerializerOptions(Default.Options) + { + Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping + }); +} diff --git a/src/GitVersion.Output/Serializer/VersionVariablesJsonStringConverter.cs b/src/GitVersion.Output/Serializer/VersionVariablesJsonStringConverter.cs index 236853f11d..814d6561ab 100644 --- a/src/GitVersion.Output/Serializer/VersionVariablesJsonStringConverter.cs +++ b/src/GitVersion.Output/Serializer/VersionVariablesJsonStringConverter.cs @@ -31,5 +31,11 @@ public override void Write(Utf8JsonWriter writer, string? value, JsonSerializerO writer.WriteStringValue(value); } + public override string ReadAsPropertyName(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + => reader.GetString() ?? ""; + + public override void WriteAsPropertyName(Utf8JsonWriter writer, string value, JsonSerializerOptions options) + => writer.WritePropertyName(value); + public override bool HandleNull => true; } From a5d847a9ccb5eddf03f39016b187e337a28d4dde Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 10 Feb 2026 21:27:56 +0100 Subject: [PATCH 144/358] fix unit test resources cleanup --- .../Configuration/Extensions.cs | 6 ++- .../Core/GitVersionExecutorTests.cs | 36 +++++++++++--- .../GitRepositoryTestingExtensions.cs | 12 ++++- .../MainlineDevelopmentScenarios.cs | 2 +- .../Output/FormatArgumentTests.cs | 49 ++++++++++--------- 5 files changed, 71 insertions(+), 34 deletions(-) diff --git a/src/GitVersion.Configuration.Tests/Configuration/Extensions.cs b/src/GitVersion.Configuration.Tests/Configuration/Extensions.cs index 491fdc926f..4145197790 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/Extensions.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/Extensions.cs @@ -24,7 +24,11 @@ public IDisposable SetupConfigFile(string? path = null, string fileName fileSystem.File.WriteAllText(fullPath, text); - return Disposable.Create(fullPath, () => fileSystem.File.Delete(fullPath)); + return Disposable.Create(fullPath, () => + { + fileSystem.File.Delete(fullPath); + fileSystem.Directory.Delete(directory, true); + }); } } } diff --git a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs index 8f36a4f0c0..0f9a0df2b7 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs @@ -71,15 +71,24 @@ public void CacheKeySameAfterReNormalizing() sp.DiscoverRepository(); var preparer = this.sp.GetRequiredService(); + var repositoryInfo = this.sp.GetRequiredService(); + var dynamicRepositoryPath = repositoryInfo.DynamicGitRepositoryPath; - preparer.Prepare(); - var cacheKeyFactory = this.sp.GetRequiredService(); - var cacheKey1 = cacheKeyFactory.Create(null); - preparer.Prepare(); + try + { + preparer.Prepare(); + var cacheKeyFactory = this.sp.GetRequiredService(); + var cacheKey1 = cacheKeyFactory.Create(null); + preparer.Prepare(); - var cacheKey2 = cacheKeyFactory.Create(null); + var cacheKey2 = cacheKeyFactory.Create(null); - cacheKey2.Value.ShouldBe(cacheKey1.Value); + cacheKey2.Value.ShouldBe(cacheKey1.Value); + } + finally + { + CleanUpDynamicRepository(dynamicRepositoryPath); + } } [Test] @@ -103,6 +112,7 @@ public void CacheKeyForWorktree() using var fixture = new EmptyRepositoryFixture(); fixture.Repository.MakeACommit(); var worktreePath = GetWorktreePath(fixture); + string? dynamicRepositoryPath = null; try { // create a branch and a new worktree for it @@ -118,14 +128,18 @@ public void CacheKeyForWorktree() sp.DiscoverRepository(); var preparer = this.sp.GetRequiredService(); + var repositoryInfo = this.sp.GetRequiredService(); preparer.Prepare(); + + dynamicRepositoryPath = repositoryInfo.DynamicGitRepositoryPath; + var cacheKeyFactory = this.sp.GetRequiredService(); var cacheKey = cacheKeyFactory.Create(null); cacheKey.Value.ShouldNotBeEmpty(); } finally { - FileSystemHelper.Directory.DeleteDirectory(worktreePath); + CleanUpDynamicRepository(dynamicRepositoryPath); } } @@ -594,6 +608,14 @@ private string GetWorktreePath(EmptyRepositoryFixture fixture) return worktreePath; } + private static void CleanUpDynamicRepository(string? dynamicRepositoryPath) + { + if (!OperatingSystem.IsWindows() && dynamicRepositoryPath != null && FileSystemHelper.Directory.Exists(dynamicRepositoryPath)) + { + FileSystemHelper.Directory.DeleteDirectory(dynamicRepositoryPath); + } + } + private IGitVersionCalculateTool GetGitVersionCalculator(GitVersionOptions gitVersionOptions, ILog? logger = null, IGitRepository? repository = null, IFileSystem? fs = null) { this.sp = GetServiceProvider(gitVersionOptions, logger, repository, fs); diff --git a/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs b/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs index b7d09d1467..7b6171debc 100644 --- a/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs @@ -160,13 +160,23 @@ public void AssertFullSemver(string fullSemver, { repository ??= fixture.Repository; - var variables = GetVersion(fixture, configuration, repository, commitId, onlyTrackedBranches, targetBranch); + var variables = fixture.GetVersion(configuration, repository, commitId, onlyTrackedBranches, targetBranch); variables.FullSemVer.ShouldBe(fullSemver); if (commitId == null) { fixture.SequenceDiagram.NoteOver(fullSemver, repository.Head.FriendlyName, color: "#D3D3D3"); } } + + public IServiceProvider ConfigureServices(Action? overrideServices = null) + { + var services = new ServiceCollection() + .AddModule(new GitVersionCoreTestModule()); + + overrideServices?.Invoke(services, fixture); + + return services.BuildServiceProvider(); + } } extension(RemoteRepositoryFixture fixture) diff --git a/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs index 898d649a66..087f09cd38 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs @@ -531,7 +531,7 @@ public void GivenARemoteGitRepositoryWithCommitsThenClonedLocalDevelopShouldMatc fixture.BranchTo("develop"); fixture.AssertFullSemver("0.1.0-alpha.0", configuration); fixture.Repository.DumpGraph(); - var local = fixture.CloneRepository(); + using var local = fixture.CloneRepository(); fixture.AssertFullSemver("0.1.0-alpha.0", configuration, repository: local.Repository); local.Repository.DumpGraph(); } diff --git a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs index cb09c018d7..e2ca58dc82 100644 --- a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs +++ b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs @@ -1,3 +1,4 @@ +using GitVersion.Core.Tests; using GitVersion.Core.Tests.Helpers; using GitVersion.Logging; using GitVersion.Output.OutputGenerator; @@ -15,15 +16,15 @@ public class FormatArgumentTests : TestBase [TestCase("{Major}.{Minor}.{Patch}.{PreReleaseTag}", "1.1.0.foo.1")] public void ShouldOutputFormatTests(string format, string expectedValue) { - var fixture = CreateTestRepository(); + using var fixture = CreateTestRepository(); var consoleBuilder = new StringBuilder(); IConsole consoleAdapter = new TestConsoleAdapter(consoleBuilder); - var sp = ConfigureServices(services => + var sp = fixture.ConfigureServices((services, testFixture) => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, RepositoryInfo = { TargetBranch = fixture.Repository.Head.CanonicalName }, Format = format, Output = { OutputType.Json } }); - var repository = fixture.Repository.ToGitRepository(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = testFixture.RepositoryPath, RepositoryInfo = { TargetBranch = testFixture.Repository.Head.CanonicalName }, Format = format, Output = { OutputType.Json } }); + var repository = testFixture.Repository.ToGitRepository(); services.AddSingleton(options); services.AddSingleton(repository); @@ -42,16 +43,16 @@ public void ShouldOutputFormatTests(string format, string expectedValue) [TestCase("{Major}.{Minor}.{Patch}.{env:CustomVar}", "1.1.0.foo")] public void ShouldOutputFormatWithEnvironmentVariablesTests(string format, string expectedValue) { - var fixture = CreateTestRepository(); + using var fixture = CreateTestRepository(); var consoleBuilder = new StringBuilder(); IConsole console = new TestConsoleAdapter(consoleBuilder); var environment = new TestEnvironment(); environment.SetEnvironmentVariable("CustomVar", "foo"); - var sp = ConfigureServices(services => + var sp = fixture.ConfigureServices((services, testFixture) => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, RepositoryInfo = { TargetBranch = fixture.Repository.Head.CanonicalName }, Format = format, Output = { OutputType.Json } }); - var repository = fixture.Repository.ToGitRepository(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = testFixture.RepositoryPath, RepositoryInfo = { TargetBranch = testFixture.Repository.Head.CanonicalName }, Format = format, Output = { OutputType.Json } }); + var repository = testFixture.Repository.ToGitRepository(); services.AddSingleton(options); services.AddSingleton(repository); @@ -76,15 +77,15 @@ public void ShouldOutputFormatWithEnvironmentVariablesTests(string format, strin [TestCase("FullSemVer", "'1.1.0-foo.1+1'")] public void ShouldOutputDotEnvEntries(string variableName, string expectedValue) { - var fixture = CreateTestRepository(); + using var fixture = CreateTestRepository(); var consoleBuilder = new StringBuilder(); IConsole consoleAdapter = new TestConsoleAdapter(consoleBuilder); - var sp = ConfigureServices(services => + var sp = fixture.ConfigureServices((services, testFixture) => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, RepositoryInfo = { TargetBranch = fixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); - var repository = fixture.Repository.ToGitRepository(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = testFixture.RepositoryPath, RepositoryInfo = { TargetBranch = testFixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); + var repository = testFixture.Repository.ToGitRepository(); services.AddSingleton(options); services.AddSingleton(repository); @@ -102,15 +103,15 @@ public void ShouldOutputDotEnvEntries(string variableName, string expectedValue) [TestCase] public void ShouldOutputAllCalculatedVariablesAsDotEnvEntries() { - var fixture = CreateTestRepository(); + using var fixture = CreateTestRepository(); var consoleBuilder = new StringBuilder(); IConsole consoleAdapter = new TestConsoleAdapter(consoleBuilder); - var sp = ConfigureServices(services => + var sp = fixture.ConfigureServices((services, testFixture) => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, RepositoryInfo = { TargetBranch = fixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); - var repository = fixture.Repository.ToGitRepository(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = testFixture.RepositoryPath, RepositoryInfo = { TargetBranch = testFixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); + var repository = testFixture.Repository.ToGitRepository(); services.AddSingleton(options); services.AddSingleton(repository); @@ -137,15 +138,15 @@ public void ShouldOutputAllCalculatedVariablesAsDotEnvEntries() [TestCase("PreReleaseLabelWithDash", "''")] public void ShouldOutputAllDotEnvEntriesEvenForMinimalRepositories(string variableName, string expectedValue) { - var fixture = CreateMinimalTestRepository(); + using var fixture = CreateMinimalTestRepository(); var consoleBuilder = new StringBuilder(); IConsole consoleAdapter = new TestConsoleAdapter(consoleBuilder); - var sp = ConfigureServices(services => + var sp = fixture.ConfigureServices((services, testFixture) => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, RepositoryInfo = { TargetBranch = fixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); - var repository = fixture.Repository.ToGitRepository(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = testFixture.RepositoryPath, RepositoryInfo = { TargetBranch = testFixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); + var repository = testFixture.Repository.ToGitRepository(); services.AddSingleton(options); services.AddSingleton(repository); @@ -163,15 +164,15 @@ public void ShouldOutputAllDotEnvEntriesEvenForMinimalRepositories(string variab [TestCase] public void ShouldOutputAllCalculatedVariablesAsDotEnvEntriesEvenForMinimalRepositories() { - var fixture = CreateMinimalTestRepository(); + using var fixture = CreateMinimalTestRepository(); var consoleBuilder = new StringBuilder(); IConsole consoleAdapter = new TestConsoleAdapter(consoleBuilder); - var sp = ConfigureServices(services => + var sp = fixture.ConfigureServices((services, testFixture) => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, RepositoryInfo = { TargetBranch = fixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); - var repository = fixture.Repository.ToGitRepository(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = testFixture.RepositoryPath, RepositoryInfo = { TargetBranch = testFixture.Repository.Head.CanonicalName }, Output = { OutputType.DotEnv } }); + var repository = testFixture.Repository.ToGitRepository(); services.AddSingleton(options); services.AddSingleton(repository); From b6e1ef85d56d00b667d9ebd07083140ad0bccc87 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 11 Feb 2026 09:00:27 +0100 Subject: [PATCH 145/358] refactor(gitversion-variables): Standardize output variable order Reorders GitVersion properties alphabetically across Core, MSBuild, Cake, and documentation for consistency and refines nullability. --- build/common/Addins/GitVersion/GitVersion.cs | 110 ++++++++----- .../Addins/GitVersion/GitVersionAliases.cs | 4 +- build/common/Utilities/Models.cs | 2 +- docs/input/docs/reference/variables.md | 64 ++++---- .../Helpers/TestableGitVersionVariables.cs | 39 ++--- .../OutputVariables/GitVersionVariables.cs | 145 +++++++++--------- src/GitVersion.Core/PublicAPI.Unshipped.txt | 4 +- .../VersionCalculation/VariableProvider.cs | 57 ++++--- src/GitVersion.MsBuild/Tasks/GetVersion.cs | 54 +++---- .../msbuild/tools/GitVersion.MsBuild.targets | 68 ++++---- 10 files changed, 290 insertions(+), 257 deletions(-) diff --git a/build/common/Addins/GitVersion/GitVersion.cs b/build/common/Addins/GitVersion/GitVersion.cs index b3dd485ab2..4ef5292f92 100644 --- a/build/common/Addins/GitVersion/GitVersion.cs +++ b/build/common/Addins/GitVersion/GitVersion.cs @@ -6,102 +6,138 @@ namespace Common.Addins.GitVersion; public sealed class GitVersion { /// - /// Gets or sets the major version. + /// Gets or sets the assembly semantic file version. Suitable for .NET AssemblyFileVersion. Defaults to Major.Minor.Patch.0. /// - public int Major { get; set; } + public string? AssemblySemFileVer { get; set; } /// - /// Gets or sets the minor version. + /// Gets or sets the assembly Semantic Version. Suitable for .NET AssemblyVersion. Defaults to Major.Minor.0.0. /// - public int Minor { get; set; } + public string? AssemblySemVer { get; set; } /// - /// Gets or sets the patch version. + /// Gets or sets the branch name. The name of the checked out Git branch. /// - public int Patch { get; set; } + public string? BranchName { get; set; } /// - /// Gets or sets the pre-release tag. + /// Gets or sets the build metadata, usually representing number of commits since the VersionSourceSha. /// - public string? PreReleaseTag { get; set; } + public int? BuildMetaData { get; set; } /// - /// Gets or sets the pre-release tag with dash. + /// Gets or sets the commit date. The ISO-8601 formatted date of the commit identified by Sha. /// - public string? PreReleaseTagWithDash { get; set; } + public string? CommitDate { get; set; } /// - /// Gets or sets the pre-release label. + /// Gets or sets the commits since version source. /// - public string? PreReleaseLabel { get; set; } + [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] + public int? CommitsSinceVersionSource { get; set; } /// - /// Gets or sets the pre-release number. + /// Gets or sets the escaped branch name. Equal to BranchName, but with / replaced with -. /// - public int? PreReleaseNumber { get; set; } + public string? EscapedBranchName { get; set; } /// - /// Gets or sets the build metadata. + /// Gets or sets the full build metadata. The BuildMetaData suffixed with BranchName and Sha. /// - public string? BuildMetaData { get; set; } + public string? FullBuildMetaData { get; set; } /// - /// Gets or sets the major version. + /// Gets or sets the full Semantic Version. The full, SemVer 2.0 compliant version number. /// - public string? FullBuildMetaData { get; set; } + public string? FullSemVer { get; set; } /// - /// Gets or sets the major, minor, and path. + /// Gets or sets the informational version. Suitable for .NET AssemblyInformationalVersion. Defaults to FullSemVer suffixed by FullBuildMetaData. + /// + public string? InformationalVersion { get; set; } + + /// + /// Gets or sets the major version. Should be incremented on breaking changes. + /// + public int? Major { get; set; } + + /// + /// Gets or sets the major, minor, and patch. Major, Minor and Patch joined together, separated by '.'. /// public string? MajorMinorPatch { get; set; } /// - /// Gets or sets the Semantic Version. + /// Gets or sets the minor version. Should be incremented on new features. /// - public string? SemVer { get; set; } + public int? Minor { get; set; } /// - /// Gets or sets the assembly Semantic Version. + /// Gets or sets the patch version. Should be incremented on bug fixes. /// - public string? AssemblySemVer { get; set; } + public int? Patch { get; set; } /// - /// Gets or sets the assembly semantic file version. + /// Gets or sets the pre-release label. The pre-release label is the name of the pre-release. /// - public string? AssemblySemFileVer { get; set; } + public string? PreReleaseLabel { get; set; } /// - /// Gets or sets the full Semantic Version. + /// Gets or sets the pre-release label with dash. The pre-release label prefixed with a dash. /// - public string? FullSemVer { get; set; } + public string? PreReleaseLabelWithDash { get; set; } /// - /// Gets or sets the informational version. + /// Gets or sets the pre-release number. The pre-release number is the number of commits since the last version bump. /// - public string? InformationalVersion { get; set; } + public int? PreReleaseNumber { get; set; } /// - /// Gets or sets the branch name. + /// Gets or sets the pre-release tag. The pre-release tag is the pre-release label suffixed by the PreReleaseNumber. /// - public string? BranchName { get; set; } + public string? PreReleaseTag { get; set; } + + /// + /// Gets or sets the pre-release tag with dash. The pre-release tag prefixed with a dash. + /// + public string? PreReleaseTagWithDash { get; set; } + + /// + /// Gets or sets the Semantic Version. The semantic version number, including PreReleaseTagWithDash for pre-release version numbers. + /// + public string? SemVer { get; set; } /// - /// Gets or sets the Git SHA. + /// Gets or sets the Git SHA. The SHA of the Git commit. /// public string? Sha { get; set; } /// - /// Gets or sets the commits since version source. + /// Gets or sets the short SHA. The Sha limited to 7 characters. /// - public int? CommitsSinceVersionSource { get; set; } + public string? ShortSha { get; set; } + + /// + /// Gets or sets the number of uncommitted changes present in the repository. + /// + public int? UncommittedChanges { get; set; } /// - /// Gets or sets the version source distance. + /// Gets or sets the version source distance. The number of commits since the version source. /// public int? VersionSourceDistance { get; set; } /// - /// Gets or sets the commit date. + /// Gets or sets the version source SemVer. The semantic version of the commit used as version source. /// - public string? CommitDate { get; set; } + public string? VersionSourceSemVer { get; set; } + + /// + /// Gets or sets the version source SHA. The SHA of the commit used as version source. + /// + public string? VersionSourceSha { get; set; } + + /// + /// Gets or sets the weighted pre-release number. A summation of branch specific pre-release-weight and the PreReleaseNumber. Can be used to obtain a monotonically increasing version number across the branches. + /// + public int? WeightedPreReleaseNumber { get; set; } } diff --git a/build/common/Addins/GitVersion/GitVersionAliases.cs b/build/common/Addins/GitVersion/GitVersionAliases.cs index e939fb1f2a..72f61441a1 100644 --- a/build/common/Addins/GitVersion/GitVersionAliases.cs +++ b/build/common/Addins/GitVersion/GitVersionAliases.cs @@ -3,7 +3,7 @@ namespace Common.Addins.GitVersion; /// /// Contains functionality related to GitVersion. /// -/// In order to use the commands for this alias, include the following in your build.cake file to download and +/// To use the commands for this alias, include the following in your build.cake file to download and /// install from nuget.org, or specify the ToolPath within the class: /// /// #tool "nuget:?package=GitVersion.CommandLine" @@ -58,7 +58,7 @@ public GitVersion GitVersion() { ArgumentNullException.ThrowIfNull(context); - return GitVersion(context, new GitVersionSettings()); + return context.GitVersion(new GitVersionSettings()); } /// diff --git a/build/common/Utilities/Models.cs b/build/common/Utilities/Models.cs index a90d493e16..48588ede14 100644 --- a/build/common/Utilities/Models.cs +++ b/build/common/Utilities/Models.cs @@ -33,7 +33,7 @@ public static BuildVersion Calculate(GitVersion gitVersion) chocolateyVersion += $"-{prefix}{gitVersion.PreReleaseTag?.Replace(".", "-")}"; } - if (!string.IsNullOrWhiteSpace(gitVersion.BuildMetaData)) + if (gitVersion.BuildMetaData is not null) { semVersion += $"-{gitVersion.BuildMetaData}"; chocolateyVersion += $"-{gitVersion.BuildMetaData}"; diff --git a/docs/input/docs/reference/variables.md b/docs/input/docs/reference/variables.md index 661dac335c..c55b97cdb6 100644 --- a/docs/input/docs/reference/variables.md +++ b/docs/input/docs/reference/variables.md @@ -11,33 +11,33 @@ what is available. For the `release/3.0.0` branch of GitVersion it shows: ```json { + "AssemblySemFileVer": "3.22.11.0", + "AssemblySemVer": "3.22.11.0", + "BranchName": "release/3.022.011", + "BuildMetaData": 88, + "CommitDate": "2021-12-31", + "CommitsSinceVersionSource": 7, + "EscapedBranchName": "release-3.022.011", + "FullBuildMetaData": "99.Branch.release/3.22.11.Sha.28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", + "FullSemVer": "3.22.11-beta.99+88", + "InformationalVersion": "3.22.11-beta.99+88.Branch.release/3.022.011.Sha.28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", "Major": 3, + "MajorMinorPatch": "3.22.11", "Minor": 22, "Patch": 11, - "PreReleaseTag": "beta.99", - "PreReleaseTagWithDash": "-beta.99", "PreReleaseLabel": "beta", "PreReleaseLabelWithDash": "-beta", "PreReleaseNumber": 99, - "WeightedPreReleaseNumber": 1099, - "BuildMetaData": 88, - "FullBuildMetaData": "99.Branch.release/3.22.11.Sha.28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", - "MajorMinorPatch": "3.22.11", + "PreReleaseTag": "beta.99", + "PreReleaseTagWithDash": "-beta.99", "SemVer": "3.22.11-beta.99", - "AssemblySemVer": "3.22.11.0", - "AssemblySemFileVer": "3.22.11.0", - "InformationalVersion": "3.22.11-beta.99+88.Branch.release/3.022.011.Sha.28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", - "FullSemVer": "3.22.11-beta.99+88", - "BranchName": "release/3.022.011", - "EscapedBranchName": "release-3.022.011", "Sha": "28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", "ShortSha": "28c8531", + "UncommittedChanges": 0, + "VersionSourceDistance": 7, "VersionSourceSemVer": "3.22.11", "VersionSourceSha": "28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", - "CommitsSinceVersionSource": 7, - "VersionSourceDistance": 7, - "CommitDate": "2021-12-31", - "UncommittedChanges": 0 + "WeightedPreReleaseNumber": 1099 } ``` @@ -45,33 +45,33 @@ Each property of the above JSON document is described in the below table. | Property | Description | |----------------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `AssemblySemFileVer` | Suitable for .NET `AssemblyFileVersion`. Defaults to `Major.Minor.Patch.0`. | +| `AssemblySemVer` | Suitable for .NET `AssemblyVersion`. Defaults to `Major.Minor.0.0` to allow the assembly to be hotfixed without breaking existing applications that may be referencing it. | +| `BranchName` | The name of the checked out Git branch. | +| `BuildMetaData` | The build metadata, usually representing number of commits since the `VersionSourceSha`. Despite its name, will not increment for every build. | +| `CommitDate` | The ISO-8601 formatted date of the commit identified by `Sha`. | +| `CommitsSinceVersionSource` | (Deprecated: use `VersionSourceDistance` instead) The number of commits since the version source. | +| `EscapedBranchName` | Equal to `BranchName`, but with `/` replaced with `-`. | +| `FullBuildMetaData` | The `BuildMetaData` suffixed with `BranchName` and `Sha`. | +| `FullSemVer` | The full, SemVer 2.0 compliant version number. | +| `InformationalVersion` | Suitable for .NET `AssemblyInformationalVersion`. Defaults to `FullSemVer` suffixed by `FullBuildMetaData`. | | `Major` | The major version. Should be incremented on breaking changes. | +| `MajorMinorPatch` | `Major`, `Minor` and `Patch` joined together, separated by `.`. | | `Minor` | The minor version. Should be incremented on new features. | | `Patch` | The patch version. Should be incremented on bug fixes. | -| `PreReleaseTag` | The pre-release tag is the pre-release label suffixed by the `PreReleaseNumber`. | -| `PreReleaseTagWithDash` | The pre-release tag prefixed with a dash. | | `PreReleaseLabel` | The pre-release label. | | `PreReleaseLabelWithDash` | The pre-release label prefixed with a dash. | | `PreReleaseNumber` | The pre-release number. | -| `WeightedPreReleaseNumber` | A summation of branch specific `pre-release-weight` and the `PreReleaseNumber`. Can be used to obtain a monotonically increasing version number across the branches. | -| `BuildMetaData` | The build metadata, usually representing number of commits since the `VersionSourceSha`. Despite its name, will not increment for every build. | -| `FullBuildMetaData` | The `BuildMetaData` suffixed with `BranchName` and `Sha`. | -| `MajorMinorPatch` | `Major`, `Minor` and `Patch` joined together, separated by `.`. | +| `PreReleaseTag` | The pre-release tag is the pre-release label suffixed by the `PreReleaseNumber`. | +| `PreReleaseTagWithDash` | The pre-release tag prefixed with a dash. | | `SemVer` | The semantical version number, including `PreReleaseTagWithDash` for pre-release version numbers. | -| `AssemblySemVer` | Suitable for .NET `AssemblyVersion`. Defaults to `Major.Minor.0.0` to allow the assembly to be hotfixed without breaking existing applications that may be referencing it. | -| `AssemblySemFileVer` | Suitable for .NET `AssemblyFileVersion`. Defaults to `Major.Minor.Patch.0`. | -| `InformationalVersion` | Suitable for .NET `AssemblyInformationalVersion`. Defaults to `FullSemVer` suffixed by `FullBuildMetaData`. | -| `FullSemVer` | The full, SemVer 2.0 compliant version number. | -| `BranchName` | The name of the checked out Git branch. | -| `EscapedBranchName` | Equal to `BranchName`, but with `/` replaced with `-`. | | `Sha` | The SHA of the Git commit. | | `ShortSha` | The `Sha` limited to 7 characters. | +| `UncommittedChanges` | The number of uncommitted changes present in the repository. | +| `VersionSourceDistance` | The number of commits since the version source. | | `VersionSourceSemVer` | The semantic version of the commit used as version source. | | `VersionSourceSha` | The SHA of the commit used as version source. | -| `CommitsSinceVersionSource` | (Deprecated: use `VersionSourceDistance` instead) The number of commits since the version source. | -| `VersionSourceDistance` | The number of commits since the version source. | -| `CommitDate` | The ISO-8601 formatted date of the commit identified by `Sha`. | -| `UncommittedChanges` | The number of uncommitted changes present in the repository. | +| `WeightedPreReleaseNumber` | A summation of branch specific `pre-release-weight` and the `PreReleaseNumber`. Can be used to obtain a monotonically increasing version number across the branches. | Depending on how and in which context GitVersion is executed (for instance within a [supported build server][build-servers]), the above version variables diff --git a/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs b/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs index a23e8f46e8..23f854c139 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs @@ -3,30 +3,31 @@ namespace GitVersion.Core.Tests.Helpers; internal record TestableGitVersionVariables() : GitVersionVariables( - Major: "", - Minor: "", - Patch: "", - BuildMetaData: "", - FullBuildMetaData: "", + AssemblySemFileVer: "", + AssemblySemVer: "", BranchName: "", + BuildMetaData: "", + CommitDate: "", + CommitsSinceVersionSource: "", EscapedBranchName: "", - Sha: "", - ShortSha: "", - MajorMinorPatch: "", - SemVer: "", + FullBuildMetaData: "", FullSemVer: "", - AssemblySemVer: "", - AssemblySemFileVer: "", - PreReleaseTag: "", - PreReleaseTagWithDash: "", + InformationalVersion: "", + Major: "", + MajorMinorPatch: "", + Minor: "", + Patch: "", PreReleaseLabel: "", PreReleaseLabelWithDash: "", PreReleaseNumber: "", - WeightedPreReleaseNumber: "", - InformationalVersion: "", - CommitDate: "", + PreReleaseTag: "", + PreReleaseTagWithDash: "", + SemVer: "", + Sha: "", + ShortSha: "", + UncommittedChanges: "", + VersionSourceDistance: "", VersionSourceSemVer: "", VersionSourceSha: "", - CommitsSinceVersionSource: "", - VersionSourceDistance: "", - UncommittedChanges: ""); + WeightedPreReleaseNumber: "" +); diff --git a/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs b/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs index 0a74e23463..c9550c8a49 100644 --- a/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs +++ b/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs @@ -1,104 +1,101 @@ namespace GitVersion.OutputVariables; -public record GitVersionVariables(string Major, - string Minor, - string Patch, - string? BuildMetaData, - string? FullBuildMetaData, - string? BranchName, - string? EscapedBranchName, - string? Sha, - string? ShortSha, - string MajorMinorPatch, - string SemVer, - string FullSemVer, - string? AssemblySemVer, - string? AssemblySemFileVer, - string? PreReleaseTag, - string? PreReleaseTagWithDash, - string? PreReleaseLabel, - string? PreReleaseLabelWithDash, - string? PreReleaseNumber, - string WeightedPreReleaseNumber, - string? InformationalVersion, - string? CommitDate, - string? VersionSourceSemVer, - string? VersionSourceSha, - [property: Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] - string? CommitsSinceVersionSource, - string? VersionSourceDistance, - string? UncommittedChanges) : IEnumerable> +public record GitVersionVariables( + string? AssemblySemFileVer, + string? AssemblySemVer, + string? BranchName, + string? BuildMetaData, + string? CommitDate, + [property: Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] + string? CommitsSinceVersionSource, + string? EscapedBranchName, + string? FullBuildMetaData, + string FullSemVer, + string? InformationalVersion, + string Major, + string MajorMinorPatch, + string Minor, + string Patch, + string? PreReleaseLabel, + string? PreReleaseLabelWithDash, + string? PreReleaseNumber, + string? PreReleaseTag, + string? PreReleaseTagWithDash, + string SemVer, + string? Sha, + string? ShortSha, + string? UncommittedChanges, + string? VersionSourceDistance, + string? VersionSourceSemVer, + string? VersionSourceSha, + string WeightedPreReleaseNumber +) : IEnumerable> { internal static readonly List AvailableVariables = [ - nameof(Major), - nameof(Minor), - nameof(Patch), - nameof(BuildMetaData), - nameof(FullBuildMetaData), + nameof(AssemblySemFileVer), + nameof(AssemblySemVer), nameof(BranchName), + nameof(BuildMetaData), + nameof(CommitDate), + nameof(CommitsSinceVersionSource), nameof(EscapedBranchName), - nameof(Sha), - nameof(ShortSha), - nameof(MajorMinorPatch), - nameof(SemVer), + nameof(FullBuildMetaData), nameof(FullSemVer), - nameof(AssemblySemVer), - nameof(AssemblySemFileVer), - nameof(PreReleaseTag), - nameof(PreReleaseTagWithDash), + nameof(InformationalVersion), + nameof(Major), + nameof(MajorMinorPatch), + nameof(Minor), + nameof(Patch), nameof(PreReleaseLabel), nameof(PreReleaseLabelWithDash), nameof(PreReleaseNumber), - nameof(WeightedPreReleaseNumber), - nameof(InformationalVersion), - nameof(CommitDate), + nameof(PreReleaseTag), + nameof(PreReleaseTagWithDash), + nameof(SemVer), + nameof(Sha), + nameof(ShortSha), + nameof(UncommittedChanges), + nameof(VersionSourceDistance), nameof(VersionSourceSemVer), nameof(VersionSourceSha), - nameof(CommitsSinceVersionSource), - nameof(VersionSourceDistance), - nameof(UncommittedChanges) + nameof(WeightedPreReleaseNumber) ]; - private Dictionary Instance => new() + private Dictionary Instance => field ??= new() { - { nameof(Major), Major }, - { nameof(Minor), Minor }, - { nameof(Patch), Patch }, - { nameof(BuildMetaData), BuildMetaData }, - { nameof(FullBuildMetaData), FullBuildMetaData }, + { nameof(AssemblySemFileVer), AssemblySemFileVer }, + { nameof(AssemblySemVer), AssemblySemVer }, { nameof(BranchName), BranchName }, + { nameof(BuildMetaData), BuildMetaData }, + { nameof(CommitDate), CommitDate }, + { nameof(CommitsSinceVersionSource), CommitsSinceVersionSource }, { nameof(EscapedBranchName), EscapedBranchName }, - { nameof(Sha), Sha }, - { nameof(ShortSha), ShortSha }, - { nameof(MajorMinorPatch), MajorMinorPatch }, - { nameof(SemVer), SemVer }, + { nameof(FullBuildMetaData), FullBuildMetaData }, { nameof(FullSemVer), FullSemVer }, - { nameof(AssemblySemVer), AssemblySemVer }, - { nameof(AssemblySemFileVer), AssemblySemFileVer }, - { nameof(PreReleaseTag), PreReleaseTag }, - { nameof(PreReleaseTagWithDash), PreReleaseTagWithDash }, + { nameof(InformationalVersion), InformationalVersion }, + { nameof(Major), Major }, + { nameof(MajorMinorPatch), MajorMinorPatch }, + { nameof(Minor), Minor }, + { nameof(Patch), Patch }, { nameof(PreReleaseLabel), PreReleaseLabel }, { nameof(PreReleaseLabelWithDash), PreReleaseLabelWithDash }, { nameof(PreReleaseNumber), PreReleaseNumber }, - { nameof(WeightedPreReleaseNumber), WeightedPreReleaseNumber }, - { nameof(InformationalVersion), InformationalVersion }, - { nameof(CommitDate), CommitDate }, + { nameof(PreReleaseTag), PreReleaseTag }, + { nameof(PreReleaseTagWithDash), PreReleaseTagWithDash }, + { nameof(SemVer), SemVer }, + { nameof(Sha), Sha }, + { nameof(ShortSha), ShortSha }, + { nameof(UncommittedChanges), UncommittedChanges }, + { nameof(VersionSourceDistance), VersionSourceDistance }, { nameof(VersionSourceSemVer), VersionSourceSemVer }, { nameof(VersionSourceSha), VersionSourceSha }, - { nameof(CommitsSinceVersionSource), CommitsSinceVersionSource }, - { nameof(VersionSourceDistance), VersionSourceDistance }, - { nameof(UncommittedChanges), UncommittedChanges } + { nameof(WeightedPreReleaseNumber), WeightedPreReleaseNumber } }; public IEnumerator> GetEnumerator() => Instance.GetEnumerator(); - IEnumerator IEnumerable.GetEnumerator() => Instance.GetEnumerator(); + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - public bool TryGetValue(string variable, out string? variableValue) - { - if (Instance.TryGetValue(variable, out variableValue)) return true; - variableValue = null; - return false; - } + public bool TryGetValue(string variable, out string? variableValue) => Instance.TryGetValue(variable, out variableValue); } diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index 67343e3ea4..0ae491b345 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -1,6 +1,6 @@ #nullable enable -GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string! Major, out string! Minor, out string! Patch, out string? BuildMetaData, out string? FullBuildMetaData, out string? BranchName, out string? EscapedBranchName, out string? Sha, out string? ShortSha, out string! MajorMinorPatch, out string! SemVer, out string! FullSemVer, out string? AssemblySemVer, out string? AssemblySemFileVer, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string! WeightedPreReleaseNumber, out string? InformationalVersion, out string? CommitDate, out string? VersionSourceSemVer, out string? VersionSourceSha, out string? CommitsSinceVersionSource, out string? VersionSourceDistance, out string? UncommittedChanges) -> void -GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string! Major, string! Minor, string! Patch, string? BuildMetaData, string? FullBuildMetaData, string? BranchName, string? EscapedBranchName, string? Sha, string? ShortSha, string! MajorMinorPatch, string! SemVer, string! FullSemVer, string? AssemblySemVer, string? AssemblySemFileVer, string? PreReleaseTag, string? PreReleaseTagWithDash, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string! WeightedPreReleaseNumber, string? InformationalVersion, string? CommitDate, string? VersionSourceSemVer, string? VersionSourceSha, string? CommitsSinceVersionSource, string? VersionSourceDistance, string? UncommittedChanges) -> void +GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string? AssemblySemFileVer, out string? AssemblySemVer, out string? BranchName, out string? BuildMetaData, out string? CommitDate, out string? CommitsSinceVersionSource, out string? EscapedBranchName, out string? FullBuildMetaData, out string! FullSemVer, out string? InformationalVersion, out string! Major, out string! MajorMinorPatch, out string! Minor, out string! Patch, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string! SemVer, out string? Sha, out string? ShortSha, out string? UncommittedChanges, out string? VersionSourceDistance, out string? VersionSourceSemVer, out string? VersionSourceSha, out string! WeightedPreReleaseNumber) -> void +GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string? AssemblySemFileVer, string? AssemblySemVer, string? BranchName, string? BuildMetaData, string? CommitDate, string? CommitsSinceVersionSource, string? EscapedBranchName, string? FullBuildMetaData, string! FullSemVer, string? InformationalVersion, string! Major, string! MajorMinorPatch, string! Minor, string! Patch, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string? PreReleaseTag, string? PreReleaseTagWithDash, string! SemVer, string? Sha, string? ShortSha, string? UncommittedChanges, string? VersionSourceDistance, string? VersionSourceSemVer, string? VersionSourceSha, string! WeightedPreReleaseNumber) -> void GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.get -> string? GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.init -> void GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.get -> string? diff --git a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs index faf0db6ad0..8ac2a40025 100644 --- a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs @@ -40,34 +40,33 @@ public GitVersionVariables GetVariablesFor( ); return new( - semverFormatValues.Major, - semverFormatValues.Minor, - semverFormatValues.Patch, - semverFormatValues.BuildMetaData, - semverFormatValues.FullBuildMetaData, - semverFormatValues.BranchName, - semverFormatValues.EscapedBranchName, - semverFormatValues.Sha, - semverFormatValues.ShortSha, - semverFormatValues.MajorMinorPatch, - semverFormatValues.SemVer, - semverFormatValues.FullSemVer, - assemblySemVer, - assemblyFileSemVer, - semverFormatValues.PreReleaseTag, - semverFormatValues.PreReleaseTagWithDash, - semverFormatValues.PreReleaseLabel, - semverFormatValues.PreReleaseLabelWithDash, - semverFormatValues.PreReleaseNumber, - semverFormatValues.WeightedPreReleaseNumber, - informationalVersion, - semverFormatValues.CommitDate, - semverFormatValues.VersionSourceSemVer, - semverFormatValues.VersionSourceSha, - semverFormatValues.VersionSourceDistance, - semverFormatValues.VersionSourceDistance, - semverFormatValues.UncommittedChanges - ); + AssemblySemFileVer: assemblyFileSemVer, + AssemblySemVer: assemblySemVer, + BranchName: semverFormatValues.BranchName, + BuildMetaData: semverFormatValues.BuildMetaData, + CommitDate: semverFormatValues.CommitDate, + CommitsSinceVersionSource: semverFormatValues.VersionSourceDistance, + EscapedBranchName: semverFormatValues.EscapedBranchName, + FullBuildMetaData: semverFormatValues.FullBuildMetaData, + FullSemVer: semverFormatValues.FullSemVer, + InformationalVersion: informationalVersion, + Major: semverFormatValues.Major, + MajorMinorPatch: semverFormatValues.MajorMinorPatch, + Minor: semverFormatValues.Minor, + Patch: semverFormatValues.Patch, + PreReleaseLabel: semverFormatValues.PreReleaseLabel, + PreReleaseLabelWithDash: semverFormatValues.PreReleaseLabelWithDash, + PreReleaseNumber: semverFormatValues.PreReleaseNumber, + PreReleaseTag: semverFormatValues.PreReleaseTag, + PreReleaseTagWithDash: semverFormatValues.PreReleaseTagWithDash, + SemVer: semverFormatValues.SemVer, + Sha: semverFormatValues.Sha, + ShortSha: semverFormatValues.ShortSha, + UncommittedChanges: semverFormatValues.UncommittedChanges, + VersionSourceDistance: semverFormatValues.VersionSourceDistance, + VersionSourceSemVer: semverFormatValues.VersionSourceSemVer, + VersionSourceSha: semverFormatValues.VersionSourceSha, + WeightedPreReleaseNumber: semverFormatValues.WeightedPreReleaseNumber); } private string? CheckAndFormatString(string? formatString, T source, string? defaultValue, string formatVarName) @@ -83,7 +82,7 @@ public GitVersionVariables GetVariablesFor( try { formattedString = formatString.FormatWith(source, this.environment) - .RegexReplace(RegexPatterns.Output.SanitizeAssemblyInfoRegexPattern, "-"); + .RegexReplace(RegexPatterns.Output.SanitizeAssemblyInfoRegexPattern, "-"); } catch (ArgumentException exception) { diff --git a/src/GitVersion.MsBuild/Tasks/GetVersion.cs b/src/GitVersion.MsBuild/Tasks/GetVersion.cs index 6f1b16ed58..dcf9f76730 100644 --- a/src/GitVersion.MsBuild/Tasks/GetVersion.cs +++ b/src/GitVersion.MsBuild/Tasks/GetVersion.cs @@ -5,84 +5,84 @@ namespace GitVersion.MsBuild.Tasks; public class GetVersion : GitVersionTaskBase { [Output] - public string Major { get; set; } + public string AssemblySemFileVer { get; set; } [Output] - public string Minor { get; set; } + public string AssemblySemVer { get; set; } [Output] - public string Patch { get; set; } + public string BranchName { get; set; } [Output] - public string PreReleaseTag { get; set; } + public string BuildMetaData { get; set; } [Output] - public string PreReleaseTagWithDash { get; set; } + public string CommitDate { get; set; } [Output] - public string PreReleaseLabel { get; set; } + [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] + public string CommitsSinceVersionSource { get; set; } [Output] - public string PreReleaseLabelWithDash { get; set; } + public string EscapedBranchName { get; set; } [Output] - public string PreReleaseNumber { get; set; } + public string FullBuildMetaData { get; set; } [Output] - public string WeightedPreReleaseNumber { get; set; } + public string FullSemVer { get; set; } [Output] - public string BuildMetaData { get; set; } + public string InformationalVersion { get; set; } [Output] - public string FullBuildMetaData { get; set; } + public string Major { get; set; } [Output] public string MajorMinorPatch { get; set; } [Output] - public string SemVer { get; set; } + public string Minor { get; set; } [Output] - public string AssemblySemVer { get; set; } + public string Patch { get; set; } [Output] - public string AssemblySemFileVer { get; set; } + public string PreReleaseLabel { get; set; } [Output] - public string FullSemVer { get; set; } + public string PreReleaseLabelWithDash { get; set; } [Output] - public string InformationalVersion { get; set; } + public string PreReleaseNumber { get; set; } [Output] - public string BranchName { get; set; } + public string PreReleaseTag { get; set; } [Output] - public string EscapedBranchName { get; set; } + public string PreReleaseTagWithDash { get; set; } [Output] - public string Sha { get; set; } + public string SemVer { get; set; } [Output] - public string ShortSha { get; set; } + public string Sha { get; set; } [Output] - public string CommitDate { get; set; } + public string ShortSha { get; set; } [Output] - public string VersionSourceSemVer { get; set; } + public string UncommittedChanges { get; set; } [Output] - public string VersionSourceSha { get; set; } + public string VersionSourceDistance { get; set; } [Output] - [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] - public string CommitsSinceVersionSource { get; set; } + public string VersionSourceSemVer { get; set; } [Output] - public string VersionSourceDistance { get; set; } + public string VersionSourceSha { get; set; } [Output] - public string UncommittedChanges { get; set; } + public string WeightedPreReleaseNumber { get; set; } } diff --git a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets index c1b6dadb29..3dba803ebf 100644 --- a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets +++ b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets @@ -39,33 +39,33 @@ + + + + + + + + + + + - - - - - - + + - - - - - - - + + - - - + @@ -81,33 +81,33 @@ + GitVersion_AssemblySemFileVer=$(GitVersion_AssemblySemFileVer);$(DefineConstants) + GitVersion_AssemblySemVer=$(GitVersion_AssemblySemVer);$(DefineConstants) + GitVersion_BranchName=$(GitVersion_BranchName);$(DefineConstants) + GitVersion_BuildMetaData=$(GitVersion_BuildMetaData);$(DefineConstants) + GitVersion_CommitDate=$(GitVersion_CommitDate);$(DefineConstants) + GitVersion_CommitsSinceVersionSource=$(GitVersion_CommitsSinceVersionSource);$(DefineConstants) + GitVersion_EscapedBranchName=$(GitVersion_EscapedBranchName);$(DefineConstants) + GitVersion_FullBuildMetaData=$(GitVersion_FullBuildMetaData);$(DefineConstants) + GitVersion_FullSemVer=$(GitVersion_FullSemVer);$(DefineConstants) + GitVersion_InformationalVersion=$(GitVersion_InformationalVersion);$(DefineConstants) GitVersion_Major=$(GitVersion_Major);$(DefineConstants) + GitVersion_MajorMinorPatch=$(GitVersion_MajorMinorPatch);$(DefineConstants) GitVersion_Minor=$(GitVersion_Minor);$(DefineConstants) GitVersion_Patch=$(GitVersion_Patch);$(DefineConstants) - GitVersion_PreReleaseTag=$(GitVersion_PreReleaseTag);$(DefineConstants) - GitVersion_PreReleaseTagWithDash=$(GitVersion_PreReleaseTagWithDash);$(DefineConstants) GitVersion_PreReleaseLabel=$(GitVersion_PreReleaseLabel);$(DefineConstants) - GitVersion_PreReleaseLabelWithDash=$(GitVersion_PreReleaseLabeWithDashl);$(DefineConstants) + GitVersion_PreReleaseLabelWithDash=$(GitVersion_PreReleaseLabelWithDash);$(DefineConstants) GitVersion_PreReleaseNumber=$(GitVersion_PreReleaseNumber);$(DefineConstants) - GitVersion_WeightedPreReleaseNumber=$(GitVersion_WeightedPreReleaseNumber);$(DefineConstants) - GitVersion_BuildMetaData=$(GitVersion_BuildMetaData);$(DefineConstants) - GitVersion_FullBuildMetaData=$(GitVersion_FullBuildMetaData);$(DefineConstants) - GitVersion_MajorMinorPatch=$(GitVersion_MajorMinorPatch);$(DefineConstants) + GitVersion_PreReleaseTag=$(GitVersion_PreReleaseTag);$(DefineConstants) + GitVersion_PreReleaseTagWithDash=$(GitVersion_PreReleaseTagWithDash);$(DefineConstants) GitVersion_SemVer=$(GitVersion_SemVer);$(DefineConstants) - GitVersion_AssemblySemVer=$(GitVersion_AssemblySemVer);$(DefineConstants) - GitVersion_AssemblySemFileVer=$(GitVersion_AssemblySemFileVer);$(DefineConstants) - GitVersion_FullSemVer=$(GitVersion_FullSemVer);$(DefineConstants) - GitVersion_InformationalVersion=$(GitVersion_InformationalVersion);$(DefineConstants) - GitVersion_BranchName=$(GitVersion_BranchName);$(DefineConstants) - GitVersion_EscapedBranchName=$(GitVersion_EscapedBranchName);$(DefineConstants) GitVersion_Sha=$(GitVersion_Sha);$(DefineConstants) GitVersion_ShortSha=$(GitVersion_ShortSha);$(DefineConstants) - GitVersion_CommitDate=$(GitVersion_CommitDate);$(DefineConstants) - GitVersion_VersionSourceSha=$(GitVersion_VersionSourceSha);$(DefineConstants) - GitVersion_VersionSourceSemVer=$(GitVersion_VersionSourceSemVer);$(DefineConstants) - GitVersion_CommitsSinceVersionSource=$(GitVersion_CommitsSinceVersionSource);$(DefineConstants) - GitVersion_VersionSourceDistance=$(GitVersion_VersionSourceDistance);$(DefineConstants) GitVersion_UncommittedChanges=$(GitVersion_UncommittedChanges);$(DefineConstants) + GitVersion_VersionSourceDistance=$(GitVersion_VersionSourceDistance);$(DefineConstants) + GitVersion_VersionSourceSemVer=$(GitVersion_VersionSourceSemVer);$(DefineConstants) + GitVersion_VersionSourceSha=$(GitVersion_VersionSourceSha);$(DefineConstants) + GitVersion_WeightedPreReleaseNumber=$(GitVersion_WeightedPreReleaseNumber);$(DefineConstants) From d57ac0cb2ee63fc2c05f89c601c827bc75ef4c7e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 12:06:28 +0000 Subject: [PATCH 146/358] (sdk): Bump dotnet-sdk from 10.0.102 to 10.0.103 Bumps [dotnet-sdk](https://github.com/dotnet/sdk) from 10.0.102 to 10.0.103. - [Release notes](https://github.com/dotnet/sdk/releases) - [Commits](https://github.com/dotnet/sdk/compare/v10.0.102...v10.0.103) --- updated-dependencies: - dependency-name: dotnet-sdk dependency-version: 10.0.103 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 6f1a7e12fd..c7ec4c4b74 100644 --- a/global.json +++ b/global.json @@ -5,7 +5,7 @@ "src" ], "sdk": { - "version": "10.0.102" + "version": "10.0.103" }, "test": { "runner": "Microsoft.Testing.Platform" From 24f7f72b73163409af039a9c57acd6d9df060b17 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 11 Feb 2026 09:24:00 +0100 Subject: [PATCH 147/358] feat: expose VersionSourceIncrement property in output variables --- build/common/Addins/GitVersion/GitVersion.cs | 5 +++++ docs/input/docs/reference/variables.md | 2 ++ .../Core/GitVersionExecutorTests.cs | 1 + .../Helpers/TestableGitVersionVariables.cs | 1 + .../JsonVersionBuilderTests.Json.approved.txt | 1 + ...nuousDeliveryModeForFeatureBranch.approved.txt | 1 + ...ranchWithCustomAssemblyInfoFormat.approved.txt | 1 + ...ntinuousDeliveryModeForPreRelease.approved.txt | 1 + ...InContinuousDeliveryModeForStable.approved.txt | 1 + ...ntModeForMainBranchWithEmptyLabel.approved.txt | 1 + ...inuousDeploymentModeForPreRelease.approved.txt | 1 + ...ContinuousDeploymentModeForStable.approved.txt | 1 + ...orStableWhenCurrentCommitIsTagged.approved.txt | 1 + .../OutputVariables/GitVersionVariables.cs | 3 +++ src/GitVersion.Core/PublicAPI.Unshipped.txt | 9 +++++++-- .../SemVer/SemanticVersionBuildMetaData.cs | 3 +++ .../SemanticVersionFormatValues.cs | 2 ++ .../VersionCalculation/VariableProvider.cs | 1 + .../VersionCalculators/NextVersionCalculator.cs | 15 +++++++++++---- src/GitVersion.MsBuild/PublicAPI.Unshipped.txt | 2 ++ src/GitVersion.MsBuild/Tasks/GetVersion.cs | 3 +++ .../msbuild/tools/GitVersion.MsBuild.targets | 2 ++ ...WixFileTests.UpdateWixVersionFile.approved.txt | 1 + ...xVersionFileWhenFileAlreadyExists.approved.txt | 1 + ...foGeneratorTests.ShouldCreateFile.approved.txt | 1 + ...roperlyOutputNamespaceDeclaration.approved.txt | 1 + ...foGeneratorTests.ShouldCreateFile.approved.txt | 1 + ...roperlyOutputNamespaceDeclaration.approved.txt | 1 + ...foGeneratorTests.ShouldCreateFile.approved.txt | 1 + ...roperlyOutputNamespaceDeclaration.approved.txt | 1 + .../Serializer/VersionVariablesJsonModel.cs | 3 +++ 31 files changed, 63 insertions(+), 6 deletions(-) diff --git a/build/common/Addins/GitVersion/GitVersion.cs b/build/common/Addins/GitVersion/GitVersion.cs index 4ef5292f92..c58a74bf31 100644 --- a/build/common/Addins/GitVersion/GitVersion.cs +++ b/build/common/Addins/GitVersion/GitVersion.cs @@ -126,6 +126,11 @@ public sealed class GitVersion /// public int? VersionSourceDistance { get; set; } + /// + /// Gets or sets the version source increment. The increment strategy used for the version calculation. Possible values: None, Patch, Minor, Major. + /// + public string? VersionSourceIncrement { get; set; } + /// /// Gets or sets the version source SemVer. The semantic version of the commit used as version source. /// diff --git a/docs/input/docs/reference/variables.md b/docs/input/docs/reference/variables.md index c55b97cdb6..ed1f2f8c7e 100644 --- a/docs/input/docs/reference/variables.md +++ b/docs/input/docs/reference/variables.md @@ -35,6 +35,7 @@ what is available. For the `release/3.0.0` branch of GitVersion it shows: "ShortSha": "28c8531", "UncommittedChanges": 0, "VersionSourceDistance": 7, + "VersionSourceIncrement": "Minor", "VersionSourceSemVer": "3.22.11", "VersionSourceSha": "28c853159a46b5a87e6cc9c4f6e940c59d6bc68a", "WeightedPreReleaseNumber": 1099 @@ -69,6 +70,7 @@ Each property of the above JSON document is described in the below table. | `ShortSha` | The `Sha` limited to 7 characters. | | `UncommittedChanges` | The number of uncommitted changes present in the repository. | | `VersionSourceDistance` | The number of commits since the version source. | +| `VersionSourceIncrement` | The increment strategy used for the version calculation. Possible values: `None`, `Patch`, `Minor`, `Major`. | | `VersionSourceSemVer` | The semantic version of the commit used as version source. | | `VersionSourceSha` | The SHA of the commit used as version source. | | `WeightedPreReleaseNumber` | A summation of branch specific `pre-release-weight` and the `PreReleaseNumber`. Can be used to obtain a monotonically increasing version number across the branches. | diff --git a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs index 0f9a0df2b7..f3034638f1 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs @@ -48,6 +48,7 @@ public class GitVersionExecutorTests : TestBase "ShortSha": "dd2a29af", "UncommittedChanges": 0, "VersionSourceDistance": 19, + "VersionSourceIncrement": "Patch", "VersionSourceSemVer": "4.10.2", "VersionSourceSha": "4.10.2", "WeightedPreReleaseNumber": 19 diff --git a/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs b/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs index 23f854c139..046eb906c2 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs @@ -27,6 +27,7 @@ internal record TestableGitVersionVariables() : GitVersionVariables( ShortSha: "", UncommittedChanges: "", VersionSourceDistance: "", + VersionSourceIncrement: "", VersionSourceSemVer: "", VersionSourceSha: "", WeightedPreReleaseNumber: "" diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt index cc8743f21e..f929e2f108 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", "VersionSourceSemVer": "1.1.2", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 4 diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt index 5352bab7b4..9099d56669 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt index 96dac77be7..5ade547ffd 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt index fee70f4123..c2223c76e4 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 4 diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt index 5971f82d87..2a04e2f8ea 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt index e5cc41eaab..842c7a575e 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForMainBranchWithEmptyLabel.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 55009 diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt index c200cb21fa..21cdc0addd 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 8 diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt index 1fae9482d2..68f060df9c 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 5 diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt index 0875361a4e..a62fe0a46b 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt @@ -23,6 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, + "VersionSourceIncrement": "None", "VersionSourceSemVer": "", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 0 diff --git a/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs b/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs index c9550c8a49..1ea63bd649 100644 --- a/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs +++ b/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs @@ -26,6 +26,7 @@ public record GitVersionVariables( string? ShortSha, string? UncommittedChanges, string? VersionSourceDistance, + string? VersionSourceIncrement, string? VersionSourceSemVer, string? VersionSourceSha, string WeightedPreReleaseNumber @@ -57,6 +58,7 @@ string WeightedPreReleaseNumber nameof(ShortSha), nameof(UncommittedChanges), nameof(VersionSourceDistance), + nameof(VersionSourceIncrement), nameof(VersionSourceSemVer), nameof(VersionSourceSha), nameof(WeightedPreReleaseNumber) @@ -88,6 +90,7 @@ string WeightedPreReleaseNumber { nameof(ShortSha), ShortSha }, { nameof(UncommittedChanges), UncommittedChanges }, { nameof(VersionSourceDistance), VersionSourceDistance }, + { nameof(VersionSourceIncrement), VersionSourceIncrement }, { nameof(VersionSourceSemVer), VersionSourceSemVer }, { nameof(VersionSourceSha), VersionSourceSha }, { nameof(WeightedPreReleaseNumber), WeightedPreReleaseNumber } diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index 0ae491b345..b7e790ccb0 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -1,15 +1,20 @@ #nullable enable -GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string? AssemblySemFileVer, out string? AssemblySemVer, out string? BranchName, out string? BuildMetaData, out string? CommitDate, out string? CommitsSinceVersionSource, out string? EscapedBranchName, out string? FullBuildMetaData, out string! FullSemVer, out string? InformationalVersion, out string! Major, out string! MajorMinorPatch, out string! Minor, out string! Patch, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string! SemVer, out string? Sha, out string? ShortSha, out string? UncommittedChanges, out string? VersionSourceDistance, out string? VersionSourceSemVer, out string? VersionSourceSha, out string! WeightedPreReleaseNumber) -> void -GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string? AssemblySemFileVer, string? AssemblySemVer, string? BranchName, string? BuildMetaData, string? CommitDate, string? CommitsSinceVersionSource, string? EscapedBranchName, string? FullBuildMetaData, string! FullSemVer, string? InformationalVersion, string! Major, string! MajorMinorPatch, string! Minor, string! Patch, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string? PreReleaseTag, string? PreReleaseTagWithDash, string! SemVer, string? Sha, string? ShortSha, string? UncommittedChanges, string? VersionSourceDistance, string? VersionSourceSemVer, string? VersionSourceSha, string! WeightedPreReleaseNumber) -> void +GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string? AssemblySemFileVer, out string? AssemblySemVer, out string? BranchName, out string? BuildMetaData, out string? CommitDate, out string? CommitsSinceVersionSource, out string? EscapedBranchName, out string? FullBuildMetaData, out string! FullSemVer, out string? InformationalVersion, out string! Major, out string! MajorMinorPatch, out string! Minor, out string! Patch, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string! SemVer, out string? Sha, out string? ShortSha, out string? UncommittedChanges, out string? VersionSourceDistance, out string? VersionSourceIncrement, out string? VersionSourceSemVer, out string? VersionSourceSha, out string! WeightedPreReleaseNumber) -> void +GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string? AssemblySemFileVer, string? AssemblySemVer, string? BranchName, string? BuildMetaData, string? CommitDate, string? CommitsSinceVersionSource, string? EscapedBranchName, string? FullBuildMetaData, string! FullSemVer, string? InformationalVersion, string! Major, string! MajorMinorPatch, string! Minor, string! Patch, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string? PreReleaseTag, string? PreReleaseTagWithDash, string! SemVer, string? Sha, string? ShortSha, string? UncommittedChanges, string? VersionSourceDistance, string? VersionSourceIncrement, string? VersionSourceSemVer, string? VersionSourceSha, string! WeightedPreReleaseNumber) -> void GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.get -> string? GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.init -> void +GitVersion.OutputVariables.GitVersionVariables.VersionSourceIncrement.get -> string? +GitVersion.OutputVariables.GitVersionVariables.VersionSourceIncrement.init -> void GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.get -> string? GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.init -> void GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData(GitVersion.SemanticVersion? versionSourceSemVer, string? versionSourceSha, long? commitsSinceTag, string? branch, string? commitSha, string? commitShortSha, System.DateTimeOffset? commitDate, long numberOfUnCommittedChanges, string? otherMetadata = null) -> void GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.get -> long GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.init -> void +GitVersion.SemanticVersionBuildMetaData.VersionSourceIncrement.get -> GitVersion.VersionField +GitVersion.SemanticVersionBuildMetaData.VersionSourceIncrement.init -> void GitVersion.SemanticVersionBuildMetaData.VersionSourceSemVer.get -> GitVersion.SemanticVersion? GitVersion.SemanticVersionBuildMetaData.VersionSourceSemVer.init -> void GitVersion.SemanticVersionFormatValues.VersionSourceDistance.get -> string! +GitVersion.SemanticVersionFormatValues.VersionSourceIncrement.get -> string! GitVersion.SemanticVersionFormatValues.VersionSourceSemVer.get -> string? GitVersion.VersionCalculation.IDeploymentModeCalculator.Calculate(GitVersion.SemanticVersion! semanticVersion, GitVersion.VersionCalculation.IBaseVersion! baseVersion) -> GitVersion.SemanticVersion! diff --git a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs index 7867ff111a..4c79bd426d 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs @@ -34,6 +34,8 @@ public class SemanticVersionBuildMetaData : IFormattable, IEquatable Equals(obj as SemanticVersionBuildMetaData); diff --git a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs index b5338f7581..f21d1d852e 100644 --- a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs +++ b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs @@ -62,4 +62,6 @@ public class SemanticVersionFormatValues(SemanticVersion semver, IGitVersionConf public string VersionSourceDistance => semver.BuildMetaData.VersionSourceDistance.ToString(CultureInfo.InvariantCulture); public string UncommittedChanges => semver.BuildMetaData.UncommittedChanges.ToString(CultureInfo.InvariantCulture); + + public string VersionSourceIncrement => semver.BuildMetaData.VersionSourceIncrement.ToString(); } diff --git a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs index 8ac2a40025..7b55b400a3 100644 --- a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs @@ -64,6 +64,7 @@ public GitVersionVariables GetVariablesFor( ShortSha: semverFormatValues.ShortSha, UncommittedChanges: semverFormatValues.UncommittedChanges, VersionSourceDistance: semverFormatValues.VersionSourceDistance, + VersionSourceIncrement: semverFormatValues.VersionSourceIncrement, VersionSourceSemVer: semverFormatValues.VersionSourceSemVer, VersionSourceSha: semverFormatValues.VersionSourceSha, WeightedPreReleaseNumber: semverFormatValues.WeightedPreReleaseNumber); diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs index 2de9cde156..f7a630f51f 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs @@ -50,7 +50,7 @@ public virtual SemanticVersion FindVersion() } } - var nextVersion = CalculateNextVersion(Context.CurrentBranch, Context.Configuration); + var (nextVersion, versionSourceIncrement) = CalculateNextVersion(Context.CurrentBranch, Context.Configuration); if (Context.IsCurrentCommitTagged && someBranchRelatedPropertiesMightBeNotKnown && nextVersion.Configuration.PreventIncrementWhenCurrentCommitTagged) @@ -98,7 +98,13 @@ public virtual SemanticVersion FindVersion() }; } - return semanticVersion; + return new SemanticVersion(semanticVersion) + { + BuildMetaData = new SemanticVersionBuildMetaData(semanticVersion.BuildMetaData) + { + VersionSourceIncrement = versionSourceIncrement + } + }; } private bool TryGetSemanticVersion( @@ -152,7 +158,7 @@ private SemanticVersion CalculateSemanticVersion( return deploymentModeCalculator.Calculate(semanticVersion, baseVersion); } - private NextVersion CalculateNextVersion(IBranch branch, IGitVersionConfiguration configuration) + private (NextVersion NextVersion, VersionField Increment) CalculateNextVersion(IBranch branch, IGitVersionConfiguration configuration) { var nextVersions = GetNextVersions(branch, configuration); log.Separator(); @@ -212,7 +218,8 @@ private NextVersion CalculateNextVersion(IBranch branch, IGitVersionConfiguratio log.Info($"Base version used: {calculatedBase}"); log.Separator(); - return new(maxVersion.IncrementedVersion, calculatedBase, maxVersion.BranchConfiguration); + var increment = (maxVersion.BaseVersion as BaseVersion)?.Operator?.Increment ?? VersionField.None; + return (new(maxVersion.IncrementedVersion, calculatedBase, maxVersion.BranchConfiguration), increment); } private static NextVersion CompareVersions(NextVersion version1, NextVersion version2) diff --git a/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt b/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt index 2c80d73e04..03c012c827 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt @@ -1,5 +1,7 @@ #nullable enable GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.get -> string! GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.set -> void +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceIncrement.get -> string! +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceIncrement.set -> void GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSemVer.get -> string! GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSemVer.set -> void diff --git a/src/GitVersion.MsBuild/Tasks/GetVersion.cs b/src/GitVersion.MsBuild/Tasks/GetVersion.cs index dcf9f76730..24e60ea19f 100644 --- a/src/GitVersion.MsBuild/Tasks/GetVersion.cs +++ b/src/GitVersion.MsBuild/Tasks/GetVersion.cs @@ -77,6 +77,9 @@ public class GetVersion : GitVersionTaskBase [Output] public string VersionSourceDistance { get; set; } + [Output] + public string VersionSourceIncrement { get; set; } + [Output] public string VersionSourceSemVer { get; set; } diff --git a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets index 3dba803ebf..43b18b00e9 100644 --- a/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets +++ b/src/GitVersion.MsBuild/msbuild/tools/GitVersion.MsBuild.targets @@ -63,6 +63,7 @@ + @@ -105,6 +106,7 @@ GitVersion_ShortSha=$(GitVersion_ShortSha);$(DefineConstants) GitVersion_UncommittedChanges=$(GitVersion_UncommittedChanges);$(DefineConstants) GitVersion_VersionSourceDistance=$(GitVersion_VersionSourceDistance);$(DefineConstants) + GitVersion_VersionSourceIncrement=$(GitVersion_VersionSourceIncrement);$(DefineConstants) GitVersion_VersionSourceSemVer=$(GitVersion_VersionSourceSemVer);$(DefineConstants) GitVersion_VersionSourceSha=$(GitVersion_VersionSourceSha);$(DefineConstants) GitVersion_WeightedPreReleaseNumber=$(GitVersion_WeightedPreReleaseNumber);$(DefineConstants) diff --git a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt index 611dfa6800..71739ed61f 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFile.approved.txt @@ -24,6 +24,7 @@ + diff --git a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt index 611dfa6800..71739ed61f 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/WixFileTests.UpdateWixVersionFileWhenFileAlreadyExists.approved.txt @@ -24,6 +24,7 @@ + diff --git a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index e7145c77f7..d069897580 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -36,6 +36,7 @@ static class GitVersionInformation public const string ShortSha = "commitShortSha"; public const string UncommittedChanges = "0"; public const string VersionSourceDistance = "5"; + public const string VersionSourceIncrement = "None"; public const string VersionSourceSemVer = "1.2.2"; public const string VersionSourceSha = "versionSourceSha"; public const string WeightedPreReleaseNumber = "4"; diff --git a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 9be73f8071..456ce9c797 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -38,6 +38,7 @@ namespace My.Custom.Namespace public const string ShortSha = "commitShortSha"; public const string UncommittedChanges = "0"; public const string VersionSourceDistance = "5"; + public const string VersionSourceIncrement = "None"; public const string VersionSourceSemVer = "1.2.2"; public const string VersionSourceSha = "versionSourceSha"; public const string WeightedPreReleaseNumber = "4"; diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index bc89595b19..5ba53b70cc 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -38,6 +38,7 @@ type GitVersionInformation = static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" static member VersionSourceDistance = "5" + static member VersionSourceIncrement = "None" static member VersionSourceSemVer = "1.2.2" static member VersionSourceSha = "versionSourceSha" static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index efc9660783..0258ee7c3e 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -38,6 +38,7 @@ type GitVersionInformation = static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" static member VersionSourceDistance = "5" + static member VersionSourceIncrement = "None" static member VersionSourceSemVer = "1.2.2" static member VersionSourceSha = "versionSourceSha" static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 945890ec97..258c7c1d0d 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -39,6 +39,7 @@ Namespace Global Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" Public Shared VersionSourceDistance As String = "5" + Public Shared VersionSourceIncrement As String = "None" Public Shared VersionSourceSemVer As String = "1.2.2" Public Shared VersionSourceSha As String = "versionSourceSha" Public Shared WeightedPreReleaseNumber As String = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 32845a9b3f..8ae2e17df2 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -39,6 +39,7 @@ Namespace My.Custom.Namespace Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" Public Shared VersionSourceDistance As String = "5" + Public Shared VersionSourceIncrement As String = "None" Public Shared VersionSourceSemVer As String = "1.2.2" Public Shared VersionSourceSha As String = "versionSourceSha" Public Shared WeightedPreReleaseNumber As String = "4" diff --git a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs index db2705ffa0..ca6d4c9017 100644 --- a/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs +++ b/src/GitVersion.Output/Serializer/VersionVariablesJsonModel.cs @@ -77,6 +77,9 @@ internal class VersionVariablesJsonModel [JsonPropertyDescription("The number of commits since the version source.")] public int? VersionSourceDistance { get; set; } + [JsonPropertyDescription("The increment strategy used for the version calculation. Possible values: None, Patch, Minor, Major.")] + public string? VersionSourceIncrement { get; set; } + [JsonPropertyDescription("The semantic version of the commit used as version source.")] public string? VersionSourceSemVer { get; set; } From ddfbacdb9609008e04dcf5f8bc6d272be0e43533 Mon Sep 17 00:00:00 2001 From: jakublatkowski Date: Thu, 12 Feb 2026 06:42:08 +0100 Subject: [PATCH 148/358] feat: add VersionIncrement to NextVersion, and SemanticVersionBuildMetaData constructors --- src/GitVersion.Core.Tests/CommitDateTests.cs | 3 ++- .../JsonVersionBuilderTests.Json.approved.txt | 2 +- .../JsonVersionBuilderTests.cs | 11 +++++++++- src/GitVersion.Core/PublicAPI.Shipped.txt | 1 - src/GitVersion.Core/PublicAPI.Unshipped.txt | 4 +++- .../SemVer/SemanticVersionBuildMetaData.cs | 14 +++++++++++-- .../VersionCalculation/NextVersion.cs | 8 ++++++- .../NextVersionCalculator.cs | 21 ++++++++----------- .../VersionCalculatorBase.cs | 5 ++++- ...neratorTests.ShouldCreateFile.approved.txt | 2 +- ...rlyOutputNamespaceDeclaration.approved.txt | 2 +- ...neratorTests.ShouldCreateFile.approved.txt | 2 +- ...rlyOutputNamespaceDeclaration.approved.txt | 2 +- ...neratorTests.ShouldCreateFile.approved.txt | 2 +- ...rlyOutputNamespaceDeclaration.approved.txt | 2 +- .../Output/AssemblyInfoFileUpdaterTests.cs | 17 ++++++++++++++- .../Output/GitVersionInfoGeneratorTests.cs | 3 ++- .../InformationalVersionBuilderTests.cs | 2 +- .../Output/ProjectFileUpdaterTests.cs | 8 ++++++- 19 files changed, 80 insertions(+), 31 deletions(-) diff --git a/src/GitVersion.Core.Tests/CommitDateTests.cs b/src/GitVersion.Core.Tests/CommitDateTests.cs index fd0ce38758..35c8241c8d 100644 --- a/src/GitVersion.Core.Tests/CommitDateTests.cs +++ b/src/GitVersion.Core.Tests/CommitDateTests.cs @@ -22,7 +22,8 @@ public void CommitDateFormatTest(string format, string expectedOutcome) "3139d4eeb044f46057693473eacc2655b3b27e7d", "3139d4eeb", new DateTimeOffset(date, TimeSpan.Zero), - 0); + 0, + VersionField.None); var semanticVersion = new SemanticVersion { BuildMetaData = semanticVersionBuildMetaData // assume time zone is UTC diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt b/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt index f929e2f108..f3be02dec5 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt +++ b/src/GitVersion.Core.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt @@ -23,7 +23,7 @@ "ShortSha": "commitShortSha", "UncommittedChanges": 0, "VersionSourceDistance": 5, - "VersionSourceIncrement": "None", + "VersionSourceIncrement": "Minor", "VersionSourceSemVer": "1.1.2", "VersionSourceSha": "versionSourceSha", "WeightedPreReleaseNumber": 4 diff --git a/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs index 65315321af..00f2d0f2e6 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs @@ -20,7 +20,16 @@ public void Json() Minor = 2, Patch = 0, PreReleaseTag = "unstable4", - BuildMetaData = new(versionSourceSemVer, "versionSourceSha", 5, "feature1", "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z"), 0) + BuildMetaData = new( + versionSourceSemVer, + "versionSourceSha", + 5, + "feature1", + "commitSha", + "commitShortSha", + DateTimeOffset.Parse("2014-03-06 23:59:59Z"), + 0, + VersionField.Minor) }; var serviceProvider = ConfigureServices(); diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index fe1c3b54fb..b54eb97a40 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -747,7 +747,6 @@ GitVersion.VersionCalculation.NextVersion.CompareTo(GitVersion.VersionCalculatio GitVersion.VersionCalculation.NextVersion.Configuration.get -> GitVersion.Configuration.EffectiveConfiguration! GitVersion.VersionCalculation.NextVersion.Equals(GitVersion.VersionCalculation.NextVersion? other) -> bool GitVersion.VersionCalculation.NextVersion.IncrementedVersion.get -> GitVersion.SemanticVersion! -GitVersion.VersionCalculation.NextVersion.NextVersion(GitVersion.SemanticVersion! incrementedVersion, GitVersion.VersionCalculation.IBaseVersion! baseVersion, GitVersion.Configuration.EffectiveBranchConfiguration! configuration) -> void GitVersion.VersionCalculation.VersionCalculationModule GitVersion.VersionCalculation.VersionCalculationModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void GitVersion.VersionCalculation.VersionCalculationModule.VersionCalculationModule() -> void diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index b7e790ccb0..bf3d347aba 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -7,7 +7,7 @@ GitVersion.OutputVariables.GitVersionVariables.VersionSourceIncrement.get -> str GitVersion.OutputVariables.GitVersionVariables.VersionSourceIncrement.init -> void GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.get -> string? GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.init -> void -GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData(GitVersion.SemanticVersion? versionSourceSemVer, string? versionSourceSha, long? commitsSinceTag, string? branch, string? commitSha, string? commitShortSha, System.DateTimeOffset? commitDate, long numberOfUnCommittedChanges, string? otherMetadata = null) -> void +GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData(GitVersion.SemanticVersion? versionSourceSemVer, string? versionSourceSha, long? commitsSinceTag, string? branch, string? commitSha, string? commitShortSha, System.DateTimeOffset? commitDate, long numberOfUnCommittedChanges, GitVersion.VersionField versionSourceIncrement, string? otherMetadata = null) -> void GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.get -> long GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.init -> void GitVersion.SemanticVersionBuildMetaData.VersionSourceIncrement.get -> GitVersion.VersionField @@ -18,3 +18,5 @@ GitVersion.SemanticVersionFormatValues.VersionSourceDistance.get -> string! GitVersion.SemanticVersionFormatValues.VersionSourceIncrement.get -> string! GitVersion.SemanticVersionFormatValues.VersionSourceSemVer.get -> string? GitVersion.VersionCalculation.IDeploymentModeCalculator.Calculate(GitVersion.SemanticVersion! semanticVersion, GitVersion.VersionCalculation.IBaseVersion! baseVersion) -> GitVersion.SemanticVersion! +GitVersion.VersionCalculation.NextVersion.Increment.get -> GitVersion.VersionField +GitVersion.VersionCalculation.NextVersion.NextVersion(GitVersion.SemanticVersion! incrementedVersion, GitVersion.VersionCalculation.IBaseVersion! baseVersion, GitVersion.VersionField increment, GitVersion.Configuration.EffectiveBranchConfiguration! configuration) -> void diff --git a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs index 4c79bd426d..7092fb457d 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs @@ -40,8 +40,17 @@ public SemanticVersionBuildMetaData() { } - public SemanticVersionBuildMetaData(SemanticVersion? versionSourceSemVer, string? versionSourceSha, long? commitsSinceTag, string? branch, - string? commitSha, string? commitShortSha, DateTimeOffset? commitDate, long numberOfUnCommittedChanges, string? otherMetadata = null) + public SemanticVersionBuildMetaData( + SemanticVersion? versionSourceSemVer, + string? versionSourceSha, + long? commitsSinceTag, + string? branch, + string? commitSha, + string? commitShortSha, + DateTimeOffset? commitDate, + long numberOfUnCommittedChanges, + VersionField versionSourceIncrement, + string? otherMetadata = null) { this.Sha = commitSha; this.ShortSha = commitShortSha; @@ -49,6 +58,7 @@ public SemanticVersionBuildMetaData(SemanticVersion? versionSourceSemVer, string this.Branch = branch; this.CommitDate = commitDate; this.OtherMetaData = otherMetadata; + this.VersionSourceIncrement = versionSourceIncrement; this.VersionSourceSemVer = versionSourceSemVer; this.VersionSourceSha = versionSourceSha; this.VersionSourceDistance = commitsSinceTag ?? 0; diff --git a/src/GitVersion.Core/VersionCalculation/NextVersion.cs b/src/GitVersion.Core/VersionCalculation/NextVersion.cs index fb21719cd9..5edd3a9b14 100644 --- a/src/GitVersion.Core/VersionCalculation/NextVersion.cs +++ b/src/GitVersion.Core/VersionCalculation/NextVersion.cs @@ -3,7 +3,11 @@ namespace GitVersion.VersionCalculation; -public class NextVersion(SemanticVersion incrementedVersion, IBaseVersion baseVersion, EffectiveBranchConfiguration configuration) +public class NextVersion( + SemanticVersion incrementedVersion, + IBaseVersion baseVersion, + VersionField increment, + EffectiveBranchConfiguration configuration) : IComparable, IEquatable { public IBaseVersion BaseVersion { get; } = baseVersion.NotNull(); @@ -12,6 +16,8 @@ public class NextVersion(SemanticVersion incrementedVersion, IBaseVersion baseVe public EffectiveBranchConfiguration BranchConfiguration { get; } = configuration; + public VersionField Increment { get; } = increment; + public EffectiveConfiguration Configuration => BranchConfiguration.Value; public int CompareTo(NextVersion? other) => IncrementedVersion.CompareTo(other?.IncrementedVersion); diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs index f7a630f51f..deebb37502 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs @@ -44,13 +44,13 @@ public virtual SemanticVersion FindVersion() ); var taggedSemanticVersionsOfCurrentCommit = allTaggedSemanticVersions[Context.CurrentCommit].ToList(); - if (TryGetSemanticVersion(effectiveConfiguration, taggedSemanticVersionsOfCurrentCommit, out var value)) + if (TryGetSemanticVersion(VersionField.None, effectiveConfiguration, taggedSemanticVersionsOfCurrentCommit, out var value)) { return value; } } - var (nextVersion, versionSourceIncrement) = CalculateNextVersion(Context.CurrentBranch, Context.Configuration); + var nextVersion = CalculateNextVersion(Context.CurrentBranch, Context.Configuration); if (Context.IsCurrentCommitTagged && someBranchRelatedPropertiesMightBeNotKnown && nextVersion.Configuration.PreventIncrementWhenCurrentCommitTagged) @@ -64,7 +64,7 @@ public virtual SemanticVersion FindVersion() ); var taggedSemanticVersionsOfCurrentCommit = allTaggedSemanticVersions[Context.CurrentCommit].ToList(); - if (TryGetSemanticVersion(nextVersion.Configuration, taggedSemanticVersionsOfCurrentCommit, out var value)) + if (TryGetSemanticVersion(nextVersion.Increment, nextVersion.Configuration, taggedSemanticVersionsOfCurrentCommit, out var value)) { return value; } @@ -98,16 +98,11 @@ public virtual SemanticVersion FindVersion() }; } - return new SemanticVersion(semanticVersion) - { - BuildMetaData = new SemanticVersionBuildMetaData(semanticVersion.BuildMetaData) - { - VersionSourceIncrement = versionSourceIncrement - } - }; + return semanticVersion; } private bool TryGetSemanticVersion( + VersionField versionIncrement, EffectiveConfiguration effectiveConfiguration, IReadOnlyCollection taggedSemanticVersionsOfCurrentCommit, [NotNullWhen(true)] out SemanticVersion? result) @@ -127,6 +122,7 @@ private bool TryGetSemanticVersion( commitSha: Context.CurrentCommit.Sha, commitShortSha: Context.CurrentCommit.Id.ToString(7), commitDate: Context.CurrentCommit.When, + versionSourceIncrement: versionIncrement, numberOfUnCommittedChanges: Context.NumberOfUncommittedChanges ); @@ -158,7 +154,7 @@ private SemanticVersion CalculateSemanticVersion( return deploymentModeCalculator.Calculate(semanticVersion, baseVersion); } - private (NextVersion NextVersion, VersionField Increment) CalculateNextVersion(IBranch branch, IGitVersionConfiguration configuration) + private NextVersion CalculateNextVersion(IBranch branch, IGitVersionConfiguration configuration) { var nextVersions = GetNextVersions(branch, configuration); log.Separator(); @@ -219,7 +215,7 @@ private SemanticVersion CalculateSemanticVersion( log.Separator(); var increment = (maxVersion.BaseVersion as BaseVersion)?.Operator?.Increment ?? VersionField.None; - return (new(maxVersion.IncrementedVersion, calculatedBase, maxVersion.BranchConfiguration), increment); + return new(maxVersion.IncrementedVersion, calculatedBase, increment, maxVersion.BranchConfiguration); } private static NextVersion CompareVersions(NextVersion version1, NextVersion version2) @@ -276,6 +272,7 @@ IEnumerable GetNextVersionsInternal() yield return new NextVersion( incrementedVersion: baseVersion.GetIncrementedVersion(), baseVersion: baseVersion, + increment: baseVersion?.Operator?.Increment ?? VersionField.None, configuration: effectiveBranchConfiguration ); } diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs index c565628acb..663a35ecd1 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs @@ -24,6 +24,8 @@ protected SemanticVersionBuildMetaData CreateVersionBuildMetaData(IBaseVersion b var commitsSinceTag = commitLogs.Count; this.log.Info($"{commitsSinceTag} commits found between {baseVersion.BaseVersionSource} and {Context.CurrentCommit}"); + var increment = (baseVersion as BaseVersion)?.Operator?.Increment ?? VersionField.None; + var shortSha = Context.CurrentCommit.Id.ToString(7); return new SemanticVersionBuildMetaData( versionSourceSemVer: baseVersion.SemanticVersion, @@ -33,7 +35,8 @@ protected SemanticVersionBuildMetaData CreateVersionBuildMetaData(IBaseVersion b commitSha: Context.CurrentCommit.Sha, commitShortSha: shortSha, commitDate: Context.CurrentCommit.When, - numberOfUnCommittedChanges: Context.NumberOfUncommittedChanges + numberOfUnCommittedChanges: Context.NumberOfUncommittedChanges, + versionSourceIncrement: increment ); } } diff --git a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index d069897580..93e2f292df 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -36,7 +36,7 @@ static class GitVersionInformation public const string ShortSha = "commitShortSha"; public const string UncommittedChanges = "0"; public const string VersionSourceDistance = "5"; - public const string VersionSourceIncrement = "None"; + public const string VersionSourceIncrement = "Patch"; public const string VersionSourceSemVer = "1.2.2"; public const string VersionSourceSha = "versionSourceSha"; public const string WeightedPreReleaseNumber = "4"; diff --git a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 456ce9c797..7ba1fe1304 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/cs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -38,7 +38,7 @@ namespace My.Custom.Namespace public const string ShortSha = "commitShortSha"; public const string UncommittedChanges = "0"; public const string VersionSourceDistance = "5"; - public const string VersionSourceIncrement = "None"; + public const string VersionSourceIncrement = "Patch"; public const string VersionSourceSemVer = "1.2.2"; public const string VersionSourceSha = "versionSourceSha"; public const string WeightedPreReleaseNumber = "4"; diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 5ba53b70cc..3d29d5aae5 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -38,7 +38,7 @@ type GitVersionInformation = static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" static member VersionSourceDistance = "5" - static member VersionSourceIncrement = "None" + static member VersionSourceIncrement = "Patch" static member VersionSourceSemVer = "1.2.2" static member VersionSourceSha = "versionSourceSha" static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 0258ee7c3e..5d6f1e25ca 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/fs/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -38,7 +38,7 @@ type GitVersionInformation = static member ShortSha = "commitShortSha" static member UncommittedChanges = "0" static member VersionSourceDistance = "5" - static member VersionSourceIncrement = "None" + static member VersionSourceIncrement = "Patch" static member VersionSourceSemVer = "1.2.2" static member VersionSourceSha = "versionSourceSha" static member WeightedPreReleaseNumber = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt index 258c7c1d0d..c75d2c99e2 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt @@ -39,7 +39,7 @@ Namespace Global Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" Public Shared VersionSourceDistance As String = "5" - Public Shared VersionSourceIncrement As String = "None" + Public Shared VersionSourceIncrement As String = "Patch" Public Shared VersionSourceSemVer As String = "1.2.2" Public Shared VersionSourceSha As String = "versionSourceSha" Public Shared WeightedPreReleaseNumber As String = "4" diff --git a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt index 8ae2e17df2..a05afbc157 100644 --- a/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt +++ b/src/GitVersion.Output.Tests/Output/Approved/vb/GitVersionInfoGeneratorTests.ShouldProperlyOutputNamespaceDeclaration.approved.txt @@ -39,7 +39,7 @@ Namespace My.Custom.Namespace Public Shared ShortSha As String = "commitShortSha" Public Shared UncommittedChanges As String = "0" Public Shared VersionSourceDistance As String = "5" - Public Shared VersionSourceIncrement As String = "None" + Public Shared VersionSourceIncrement As String = "Patch" Public Shared VersionSourceSemVer As String = "1.2.2" Public Shared VersionSourceSha As String = "versionSourceSha" Public Shared WeightedPreReleaseNumber As String = "4" diff --git a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs index c6c64e7967..4eef15ee45 100644 --- a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs @@ -422,7 +422,22 @@ private void VerifyAssemblyInfoFile( { var file = Substitute.For(); var versionSourceSemVer = new SemanticVersion(1, 2, 2); - var version = new SemanticVersion { BuildMetaData = new(versionSourceSemVer, "versionSourceHash", 3, "foo", "hash", "shortHash", DateTimeOffset.Now, 0), Major = 2, Minor = 3, Patch = 1 }; + var version = new SemanticVersion + { + Major = 2, + Minor = 3, + Patch = 1, + BuildMetaData = new( + versionSourceSemVer, + "versionSourceHash", + 3, + "foo", + "hash", + "shortHash", + DateTimeOffset.Now, + 0, + VersionField.Major) + }; file.Exists(fileName).Returns(true); file.ReadAllText(fileName).Returns(assemblyFileContent); diff --git a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs index a98537f3dc..5e28c9421d 100644 --- a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs +++ b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs @@ -57,7 +57,8 @@ private static SemanticVersion CreateSemanticVersion() "commitSha", "commitShortSha", DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture), - 0) + 0, + VersionField.Patch) }; } diff --git a/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs b/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs index 64af5fb236..6e81fea383 100644 --- a/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs +++ b/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs @@ -28,7 +28,7 @@ public void ValidateInformationalVersionBuilder(string branchName, string sha, s Minor = minor, Patch = patch, PreReleaseTag = tag, - BuildMetaData = new(versionSourceSemVer, versionSourceSha, commitsSinceTag, branchName, sha, shortSha, DateTimeOffset.MinValue, 0) + BuildMetaData = new(versionSourceSemVer, versionSourceSha, commitsSinceTag, branchName, sha, shortSha, DateTimeOffset.MinValue, 0, VersionField.Minor) }; var informationalVersion = semanticVersion.ToString("i"); diff --git a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs index b8238d6668..6268d1a951 100644 --- a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs @@ -308,7 +308,13 @@ private void VerifyAssemblyInfoFile( var file = Substitute.For(); var versionSourceSemVer = new SemanticVersion(1, 2, 2); - var version = new SemanticVersion { BuildMetaData = new(versionSourceSemVer, "versionSourceHash", 3, "foo", "hash", "shortHash", DateTimeOffset.Now, 0), Major = 2, Minor = 3, Patch = 1 }; + var version = new SemanticVersion + { + BuildMetaData = new(versionSourceSemVer, "versionSourceHash", 3, "foo", "hash", "shortHash", DateTimeOffset.Now, 0, VersionField.Major), + Major = 2, + Minor = 3, + Patch = 1 + }; file.Exists(fileName).Returns(true); file.ReadAllText(fileName).Returns(projectFileContent); From 566815c2cbcc21697019aca4e6edee691b1482b7 Mon Sep 17 00:00:00 2001 From: jakublatkowski Date: Thu, 12 Feb 2026 07:25:59 +0100 Subject: [PATCH 149/358] remove parameter from PreventIncrementWhenCurrentCommitTagged path --- .../VersionCalculators/NextVersionCalculator.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs index deebb37502..bb943979ad 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs @@ -44,7 +44,7 @@ public virtual SemanticVersion FindVersion() ); var taggedSemanticVersionsOfCurrentCommit = allTaggedSemanticVersions[Context.CurrentCommit].ToList(); - if (TryGetSemanticVersion(VersionField.None, effectiveConfiguration, taggedSemanticVersionsOfCurrentCommit, out var value)) + if (TryGetSemanticVersion(effectiveConfiguration, taggedSemanticVersionsOfCurrentCommit, out var value)) { return value; } @@ -64,7 +64,7 @@ public virtual SemanticVersion FindVersion() ); var taggedSemanticVersionsOfCurrentCommit = allTaggedSemanticVersions[Context.CurrentCommit].ToList(); - if (TryGetSemanticVersion(nextVersion.Increment, nextVersion.Configuration, taggedSemanticVersionsOfCurrentCommit, out var value)) + if (TryGetSemanticVersion(nextVersion.Configuration, taggedSemanticVersionsOfCurrentCommit, out var value)) { return value; } @@ -102,7 +102,6 @@ public virtual SemanticVersion FindVersion() } private bool TryGetSemanticVersion( - VersionField versionIncrement, EffectiveConfiguration effectiveConfiguration, IReadOnlyCollection taggedSemanticVersionsOfCurrentCommit, [NotNullWhen(true)] out SemanticVersion? result) @@ -122,7 +121,7 @@ private bool TryGetSemanticVersion( commitSha: Context.CurrentCommit.Sha, commitShortSha: Context.CurrentCommit.Id.ToString(7), commitDate: Context.CurrentCommit.When, - versionSourceIncrement: versionIncrement, + versionSourceIncrement: VersionField.None, numberOfUnCommittedChanges: Context.NumberOfUncommittedChanges ); From a42cf2a31880bb6dd00e3db373cf16e30e207d6f Mon Sep 17 00:00:00 2001 From: jakublatkowski Date: Thu, 12 Feb 2026 17:43:56 +0100 Subject: [PATCH 150/358] implement increment in IBaseVersion remove increment from next version --- src/GitVersion.Core/PublicAPI.Shipped.txt | 1 + src/GitVersion.Core/PublicAPI.Unshipped.txt | 4 ++-- src/GitVersion.Core/VersionCalculation/NextVersion.cs | 3 --- .../VersionCalculators/NextVersionCalculator.cs | 9 +++------ .../VersionCalculators/VersionCalculatorBase.cs | 4 +--- .../VersionSearchStrategies/BaseVersion.cs | 2 ++ .../VersionSearchStrategies/IBaseVersion.cs | 2 ++ 7 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index b54eb97a40..fe1c3b54fb 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -747,6 +747,7 @@ GitVersion.VersionCalculation.NextVersion.CompareTo(GitVersion.VersionCalculatio GitVersion.VersionCalculation.NextVersion.Configuration.get -> GitVersion.Configuration.EffectiveConfiguration! GitVersion.VersionCalculation.NextVersion.Equals(GitVersion.VersionCalculation.NextVersion? other) -> bool GitVersion.VersionCalculation.NextVersion.IncrementedVersion.get -> GitVersion.SemanticVersion! +GitVersion.VersionCalculation.NextVersion.NextVersion(GitVersion.SemanticVersion! incrementedVersion, GitVersion.VersionCalculation.IBaseVersion! baseVersion, GitVersion.Configuration.EffectiveBranchConfiguration! configuration) -> void GitVersion.VersionCalculation.VersionCalculationModule GitVersion.VersionCalculation.VersionCalculationModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void GitVersion.VersionCalculation.VersionCalculationModule.VersionCalculationModule() -> void diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index bf3d347aba..6a36f51f40 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -17,6 +17,6 @@ GitVersion.SemanticVersionBuildMetaData.VersionSourceSemVer.init -> void GitVersion.SemanticVersionFormatValues.VersionSourceDistance.get -> string! GitVersion.SemanticVersionFormatValues.VersionSourceIncrement.get -> string! GitVersion.SemanticVersionFormatValues.VersionSourceSemVer.get -> string? +GitVersion.VersionCalculation.BaseVersion.Increment.get -> GitVersion.VersionField GitVersion.VersionCalculation.IDeploymentModeCalculator.Calculate(GitVersion.SemanticVersion! semanticVersion, GitVersion.VersionCalculation.IBaseVersion! baseVersion) -> GitVersion.SemanticVersion! -GitVersion.VersionCalculation.NextVersion.Increment.get -> GitVersion.VersionField -GitVersion.VersionCalculation.NextVersion.NextVersion(GitVersion.SemanticVersion! incrementedVersion, GitVersion.VersionCalculation.IBaseVersion! baseVersion, GitVersion.VersionField increment, GitVersion.Configuration.EffectiveBranchConfiguration! configuration) -> void +GitVersion.VersionCalculation.IBaseVersion.Increment.get -> GitVersion.VersionField diff --git a/src/GitVersion.Core/VersionCalculation/NextVersion.cs b/src/GitVersion.Core/VersionCalculation/NextVersion.cs index 5edd3a9b14..6493e70ef3 100644 --- a/src/GitVersion.Core/VersionCalculation/NextVersion.cs +++ b/src/GitVersion.Core/VersionCalculation/NextVersion.cs @@ -6,7 +6,6 @@ namespace GitVersion.VersionCalculation; public class NextVersion( SemanticVersion incrementedVersion, IBaseVersion baseVersion, - VersionField increment, EffectiveBranchConfiguration configuration) : IComparable, IEquatable { @@ -16,8 +15,6 @@ public class NextVersion( public EffectiveBranchConfiguration BranchConfiguration { get; } = configuration; - public VersionField Increment { get; } = increment; - public EffectiveConfiguration Configuration => BranchConfiguration.Value; public int CompareTo(NextVersion? other) => IncrementedVersion.CompareTo(other?.IncrementedVersion); diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs index bb943979ad..d43017eda1 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs @@ -121,9 +121,8 @@ private bool TryGetSemanticVersion( commitSha: Context.CurrentCommit.Sha, commitShortSha: Context.CurrentCommit.Id.ToString(7), commitDate: Context.CurrentCommit.When, - versionSourceIncrement: VersionField.None, - numberOfUnCommittedChanges: Context.NumberOfUncommittedChanges - ); + numberOfUnCommittedChanges: Context.NumberOfUncommittedChanges, + versionSourceIncrement: VersionField.None); var preReleaseTag = currentCommitTaggedVersion.Value.PreReleaseTag; if (effectiveConfiguration.DeploymentMode == DeploymentMode.ContinuousDeployment) @@ -213,8 +212,7 @@ private NextVersion CalculateNextVersion(IBranch branch, IGitVersionConfiguratio log.Info($"Base version used: {calculatedBase}"); log.Separator(); - var increment = (maxVersion.BaseVersion as BaseVersion)?.Operator?.Increment ?? VersionField.None; - return new(maxVersion.IncrementedVersion, calculatedBase, increment, maxVersion.BranchConfiguration); + return new(maxVersion.IncrementedVersion, calculatedBase, maxVersion.BranchConfiguration); } private static NextVersion CompareVersions(NextVersion version1, NextVersion version2) @@ -271,7 +269,6 @@ IEnumerable GetNextVersionsInternal() yield return new NextVersion( incrementedVersion: baseVersion.GetIncrementedVersion(), baseVersion: baseVersion, - increment: baseVersion?.Operator?.Increment ?? VersionField.None, configuration: effectiveBranchConfiguration ); } diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs index 663a35ecd1..9670425e5c 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs @@ -24,8 +24,6 @@ protected SemanticVersionBuildMetaData CreateVersionBuildMetaData(IBaseVersion b var commitsSinceTag = commitLogs.Count; this.log.Info($"{commitsSinceTag} commits found between {baseVersion.BaseVersionSource} and {Context.CurrentCommit}"); - var increment = (baseVersion as BaseVersion)?.Operator?.Increment ?? VersionField.None; - var shortSha = Context.CurrentCommit.Id.ToString(7); return new SemanticVersionBuildMetaData( versionSourceSemVer: baseVersion.SemanticVersion, @@ -36,7 +34,7 @@ protected SemanticVersionBuildMetaData CreateVersionBuildMetaData(IBaseVersion b commitShortSha: shortSha, commitDate: Context.CurrentCommit.When, numberOfUnCommittedChanges: Context.NumberOfUncommittedChanges, - versionSourceIncrement: increment + versionSourceIncrement: baseVersion.Increment ); } } diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersion.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersion.cs index 28a574b6a0..b8c7cbb3b1 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersion.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersion.cs @@ -19,6 +19,8 @@ public BaseVersion(string source, SemanticVersion semanticVersion, ICommit? base public SemanticVersion SemanticVersion => Operand.SemanticVersion; + public VersionField Increment => Operator?.Increment ?? VersionField.None; + public ICommit? BaseVersionSource => Operator?.BaseVersionSource ?? Operand.BaseVersionSource; [MemberNotNullWhen(true, nameof(Operator))] diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersion.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersion.cs index d8c2c1c8f4..98b469cde5 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersion.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersion.cs @@ -3,4 +3,6 @@ namespace GitVersion.VersionCalculation; public interface IBaseVersion : IBaseVersionIncrement { SemanticVersion SemanticVersion { get; } + + VersionField Increment { get; } } From f709ecc0e8979ef40e8d16a9613e42c4e348a0ec Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sat, 14 Feb 2026 00:57:11 +0200 Subject: [PATCH 151/358] Fix(test): Ensure culture-invariant date parsing --- .../JsonVersionBuilderTests.cs | 3 ++- .../Output/AssemblyInfoFileUpdaterTests.cs | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs index 00f2d0f2e6..aa80aec5bc 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs @@ -1,3 +1,4 @@ +using System.Globalization; using GitVersion.Configuration; using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; @@ -27,7 +28,7 @@ public void Json() "feature1", "commitSha", "commitShortSha", - DateTimeOffset.Parse("2014-03-06 23:59:59Z"), + DateTimeOffset.Parse("2014-03-06 23:59:59Z", CultureInfo.InvariantCulture), 0, VersionField.Minor) }; diff --git a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs index 4eef15ee45..02b263a234 100644 --- a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs @@ -428,15 +428,16 @@ private void VerifyAssemblyInfoFile( Minor = 3, Patch = 1, BuildMetaData = new( - versionSourceSemVer, - "versionSourceHash", - 3, - "foo", - "hash", - "shortHash", - DateTimeOffset.Now, - 0, - VersionField.Major) + versionSourceSemVer, + "versionSourceHash", + 3, + "foo", + "hash", + "shortHash", + DateTimeOffset.Now, + 0, + VersionField.Major + ) }; file.Exists(fileName).Returns(true); From 5db9a8cc1bed9fbe7160bd2b9560c4e2b1ef54ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 12:51:59 +0000 Subject: [PATCH 152/358] (deps): Bump the microsoft group with 11 updates Bumps Microsoft.Extensions.Configuration.CommandLine from 10.0.2 to 10.0.3 Bumps Microsoft.Extensions.DependencyInjection from 10.0.2 to 10.0.3 Bumps Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.2 to 10.0.3 Bumps Microsoft.Extensions.FileSystemGlobbing from 10.0.2 to 10.0.3 Bumps Microsoft.Extensions.Hosting from 10.0.2 to 10.0.3 Bumps Microsoft.Extensions.Logging.Abstractions from 10.0.2 to 10.0.3 Bumps Microsoft.Extensions.Options from 10.0.2 to 10.0.3 Bumps System.Collections.Immutable from 10.0.2 to 10.0.3 Bumps System.CommandLine from 2.0.2 to 2.0.3 Bumps System.Reflection.Metadata from 10.0.2 to 10.0.3 Bumps System.Text.Json from 10.0.2 to 10.0.3 --- updated-dependencies: - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Logging.Abstractions dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.CommandLine dependency-version: 2.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Configuration.CommandLine dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.FileSystemGlobbing dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Hosting dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Options dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Collections.Immutable dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Reflection.Metadata dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 8 ++++---- new-cli/GitVersion.Core/GitVersion.Core.csproj | 2 +- src/Directory.Packages.props | 18 +++++++++--------- .../GitVersion.Testing.csproj | 1 - 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 724c9c9c49..62336a5869 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -12,8 +12,8 @@ - - + + @@ -30,8 +30,8 @@ - + - + \ No newline at end of file diff --git a/new-cli/GitVersion.Core/GitVersion.Core.csproj b/new-cli/GitVersion.Core/GitVersion.Core.csproj index d715674b84..61dfe0d4dc 100644 --- a/new-cli/GitVersion.Core/GitVersion.Core.csproj +++ b/new-cli/GitVersion.Core/GitVersion.Core.csproj @@ -4,6 +4,7 @@ + @@ -11,7 +12,6 @@ - Infrastructure\Environment.cs diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 8dc59977ca..482b84d384 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -12,8 +12,8 @@ - - + + @@ -24,10 +24,10 @@ - - - - + + + + @@ -35,13 +35,13 @@ - + - + - + diff --git a/src/GitVersion.Testing/GitVersion.Testing.csproj b/src/GitVersion.Testing/GitVersion.Testing.csproj index 7ba1a59980..4a461294b8 100644 --- a/src/GitVersion.Testing/GitVersion.Testing.csproj +++ b/src/GitVersion.Testing/GitVersion.Testing.csproj @@ -19,7 +19,6 @@ - From 68ca74231f30ce520d253b1e169d4325c90c121f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 16 Feb 2026 12:01:55 +0000 Subject: [PATCH 153/358] docs(installation): Document .NET local tool installation and usage Adds detailed guidance for installing GitVersion as a local tool, including `dnx` command execution examples, and updates global tool examples to version 6.x. --- docs/input/docs/usage/cli/installation.md | 67 ++++++++++++++++++++++- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/docs/input/docs/usage/cli/installation.md b/docs/input/docs/usage/cli/installation.md index e90f53a940..96340743e9 100644 --- a/docs/input/docs/usage/cli/installation.md +++ b/docs/input/docs/usage/cli/installation.md @@ -17,9 +17,9 @@ dotnet tool install --global GitVersion.Tool ``` :::{.alert .alert-info} -**Hint:** To install an older version of GitVersion.Tools, use the --version flag of dotnet tool install +**Hint:** To install an older version of GitVersion.Tool, use the --version flag of dotnet tool install -Example: `dotnet tool install GitVersion.Tool --global --version 5.*` +Example: `dotnet tool install GitVersion.Tool --global --version 6.*` ::: If you want to pin to a specific version of GitVersion, you can find the available @@ -33,6 +33,65 @@ To run call dotnet-gitversion ``` +### .NET Local Tool + +GitVersion can also be installed as a [.NET local tool][dotnet-local-tool] using +a tool manifest. This approach is useful for ensuring that all team members use +the same version of GitVersion in a project. + +To install GitVersion as a local tool, execute the following in your project's +root directory: + +```shell +dotnet new tool-manifest # if you don't already have a manifest file +dotnet tool install GitVersion.Tool +``` + +This creates or updates a `.config/dotnet-tools.json` file in your repository +that specifies the version of GitVersion to use. You can commit this file to +source control. + +:::{.alert .alert-info} +**Hint:** To install a specific version of GitVersion.Tool as a local tool, use the --version flag + +Example: `dotnet tool install GitVersion.Tool --version 6.*` +::: + +To restore tools specified in the manifest (for example, after cloning the +repository): + +```shell +dotnet tool restore +``` + +To run the local tool, you have several options: + +```shell +dotnet gitversion +``` + +Alternatively, you can use [`dotnet tool exec`][dotnet-tool-exec] (or its +shorthand aliases `dotnet dnx` or just `dnx`) to explicitly execute the tool: + +```shell +dotnet tool exec GitVersion.Tool +# or using the shorthand alias +dotnet dnx GitVersion.Tool +# or even shorter +dnx GitVersion.Tool +``` + +:::{.alert .alert-info} +**Note:** The `dotnet tool exec`, `dotnet dnx`, and `dnx` commands are useful in scripts or CI/CD +pipelines where you want to be explicit about executing a local tool from the manifest. +When using these commands, you must specify the package name `GitVersion.Tool` rather than the command name. +::: + +Note that local tools use `dotnet gitversion` (without the hyphen), while the +global tool uses `dotnet-gitversion` (with a hyphen). + +This should work on all operating systems supported by .NET Core. + ### Homebrew To install the [`gitversion`][brew] formula with [Homebrew][homebrew], @@ -90,6 +149,10 @@ of writing: Linux, macOS, Windows). [dotnet-tool]: https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools#install-a-global-tool +[dotnet-local-tool]: https://docs.microsoft.com/en-us/dotnet/core/tools/local-tools-how-to-use + +[dotnet-tool-exec]: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-tool-exec + [tool]: https://www.nuget.org/packages/GitVersion.Tool/ [brew]: https://formulae.brew.sh/formula/gitversion From 74b53efa89954e5816c48511fedff9140b298a79 Mon Sep 17 00:00:00 2001 From: gittools-bot Date: Mon, 16 Feb 2026 13:25:36 +0000 Subject: [PATCH 154/358] Mark public API as shipped --- src/GitVersion.Core/PublicAPI.Shipped.txt | 21 +++++++++++++++++++ src/GitVersion.Core/PublicAPI.Unshipped.txt | 21 ------------------- src/GitVersion.MsBuild/PublicAPI.Shipped.txt | 6 ++++++ .../PublicAPI.Unshipped.txt | 6 ------ 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index fe1c3b54fb..7e9c15e134 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -485,6 +485,7 @@ GitVersion.OutputVariables.GitVersionVariables.CommitDate.get -> string? GitVersion.OutputVariables.GitVersionVariables.CommitDate.init -> void GitVersion.OutputVariables.GitVersionVariables.CommitsSinceVersionSource.get -> string? GitVersion.OutputVariables.GitVersionVariables.CommitsSinceVersionSource.init -> void +GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string? AssemblySemFileVer, out string? AssemblySemVer, out string? BranchName, out string? BuildMetaData, out string? CommitDate, out string? CommitsSinceVersionSource, out string? EscapedBranchName, out string? FullBuildMetaData, out string! FullSemVer, out string? InformationalVersion, out string! Major, out string! MajorMinorPatch, out string! Minor, out string! Patch, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string! SemVer, out string? Sha, out string? ShortSha, out string? UncommittedChanges, out string? VersionSourceDistance, out string? VersionSourceIncrement, out string? VersionSourceSemVer, out string? VersionSourceSha, out string! WeightedPreReleaseNumber) -> void GitVersion.OutputVariables.GitVersionVariables.EscapedBranchName.get -> string? GitVersion.OutputVariables.GitVersionVariables.EscapedBranchName.init -> void GitVersion.OutputVariables.GitVersionVariables.FullBuildMetaData.get -> string? @@ -493,6 +494,7 @@ GitVersion.OutputVariables.GitVersionVariables.FullSemVer.get -> string! GitVersion.OutputVariables.GitVersionVariables.FullSemVer.init -> void GitVersion.OutputVariables.GitVersionVariables.GetEnumerator() -> System.Collections.Generic.IEnumerator>! GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(GitVersion.OutputVariables.GitVersionVariables! original) -> void +GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string? AssemblySemFileVer, string? AssemblySemVer, string? BranchName, string? BuildMetaData, string? CommitDate, string? CommitsSinceVersionSource, string? EscapedBranchName, string? FullBuildMetaData, string! FullSemVer, string? InformationalVersion, string! Major, string! MajorMinorPatch, string! Minor, string! Patch, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string? PreReleaseTag, string? PreReleaseTagWithDash, string! SemVer, string? Sha, string? ShortSha, string? UncommittedChanges, string? VersionSourceDistance, string? VersionSourceIncrement, string? VersionSourceSemVer, string? VersionSourceSha, string! WeightedPreReleaseNumber) -> void GitVersion.OutputVariables.GitVersionVariables.InformationalVersion.get -> string? GitVersion.OutputVariables.GitVersionVariables.InformationalVersion.init -> void GitVersion.OutputVariables.GitVersionVariables.Major.get -> string! @@ -522,6 +524,12 @@ GitVersion.OutputVariables.GitVersionVariables.ShortSha.init -> void GitVersion.OutputVariables.GitVersionVariables.TryGetValue(string! variable, out string? variableValue) -> bool GitVersion.OutputVariables.GitVersionVariables.UncommittedChanges.get -> string? GitVersion.OutputVariables.GitVersionVariables.UncommittedChanges.init -> void +GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.get -> string? +GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.init -> void +GitVersion.OutputVariables.GitVersionVariables.VersionSourceIncrement.get -> string? +GitVersion.OutputVariables.GitVersionVariables.VersionSourceIncrement.init -> void +GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.get -> string? +GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.init -> void GitVersion.OutputVariables.GitVersionVariables.VersionSourceSha.get -> string? GitVersion.OutputVariables.GitVersionVariables.VersionSourceSha.init -> void GitVersion.OutputVariables.GitVersionVariables.WeightedPreReleaseNumber.get -> string! @@ -584,6 +592,7 @@ GitVersion.SemanticVersionBuildMetaData.Equals(GitVersion.SemanticVersionBuildMe GitVersion.SemanticVersionBuildMetaData.OtherMetaData.get -> string? GitVersion.SemanticVersionBuildMetaData.OtherMetaData.init -> void GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData() -> void +GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData(GitVersion.SemanticVersion? versionSourceSemVer, string? versionSourceSha, long? commitsSinceTag, string? branch, string? commitSha, string? commitShortSha, System.DateTimeOffset? commitDate, long numberOfUnCommittedChanges, GitVersion.VersionField versionSourceIncrement, string? otherMetadata = null) -> void GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData(GitVersion.SemanticVersionBuildMetaData! buildMetaData) -> void GitVersion.SemanticVersionBuildMetaData.Sha.get -> string? GitVersion.SemanticVersionBuildMetaData.Sha.init -> void @@ -593,6 +602,12 @@ GitVersion.SemanticVersionBuildMetaData.ToString(string! format) -> string! GitVersion.SemanticVersionBuildMetaData.ToString(string? format, System.IFormatProvider? formatProvider) -> string! GitVersion.SemanticVersionBuildMetaData.UncommittedChanges.get -> long GitVersion.SemanticVersionBuildMetaData.UncommittedChanges.init -> void +GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.get -> long +GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.init -> void +GitVersion.SemanticVersionBuildMetaData.VersionSourceIncrement.get -> GitVersion.VersionField +GitVersion.SemanticVersionBuildMetaData.VersionSourceIncrement.init -> void +GitVersion.SemanticVersionBuildMetaData.VersionSourceSemVer.get -> GitVersion.SemanticVersion? +GitVersion.SemanticVersionBuildMetaData.VersionSourceSemVer.init -> void GitVersion.SemanticVersionBuildMetaData.VersionSourceSha.get -> string? GitVersion.SemanticVersionBuildMetaData.VersionSourceSha.init -> void GitVersion.SemanticVersionFormat @@ -623,6 +638,9 @@ GitVersion.SemanticVersionFormatValues.SemVer.get -> string! GitVersion.SemanticVersionFormatValues.Sha.get -> string? GitVersion.SemanticVersionFormatValues.ShortSha.get -> string? GitVersion.SemanticVersionFormatValues.UncommittedChanges.get -> string! +GitVersion.SemanticVersionFormatValues.VersionSourceDistance.get -> string! +GitVersion.SemanticVersionFormatValues.VersionSourceIncrement.get -> string! +GitVersion.SemanticVersionFormatValues.VersionSourceSemVer.get -> string? GitVersion.SemanticVersionFormatValues.VersionSourceSha.get -> string? GitVersion.SemanticVersionFormatValues.WeightedPreReleaseNumber.get -> string! GitVersion.SemanticVersionPreReleaseTag @@ -667,6 +685,7 @@ GitVersion.VersionCalculation.BaseVersion.BaseVersionSource.get -> GitVersion.Gi GitVersion.VersionCalculation.BaseVersion.Deconstruct(out GitVersion.VersionCalculation.BaseVersionOperand! Operand) -> void GitVersion.VersionCalculation.BaseVersion.Equals(GitVersion.VersionCalculation.BaseVersion? other) -> bool GitVersion.VersionCalculation.BaseVersion.GetIncrementedVersion() -> GitVersion.SemanticVersion! +GitVersion.VersionCalculation.BaseVersion.Increment.get -> GitVersion.VersionField GitVersion.VersionCalculation.BaseVersion.Operand.get -> GitVersion.VersionCalculation.BaseVersionOperand! GitVersion.VersionCalculation.BaseVersion.Operand.init -> void GitVersion.VersionCalculation.BaseVersion.Operator.get -> GitVersion.VersionCalculation.BaseVersionOperator? @@ -720,11 +739,13 @@ GitVersion.VersionCalculation.DeploymentMode.ContinuousDelivery = 1 -> GitVersio GitVersion.VersionCalculation.DeploymentMode.ContinuousDeployment = 2 -> GitVersion.VersionCalculation.DeploymentMode GitVersion.VersionCalculation.DeploymentMode.ManualDeployment = 0 -> GitVersion.VersionCalculation.DeploymentMode GitVersion.VersionCalculation.IBaseVersion +GitVersion.VersionCalculation.IBaseVersion.Increment.get -> GitVersion.VersionField GitVersion.VersionCalculation.IBaseVersion.SemanticVersion.get -> GitVersion.SemanticVersion! GitVersion.VersionCalculation.IBaseVersionIncrement GitVersion.VersionCalculation.IBaseVersionIncrement.BaseVersionSource.get -> GitVersion.Git.ICommit? GitVersion.VersionCalculation.IBaseVersionIncrement.Source.get -> string! GitVersion.VersionCalculation.IDeploymentModeCalculator +GitVersion.VersionCalculation.IDeploymentModeCalculator.Calculate(GitVersion.SemanticVersion! semanticVersion, GitVersion.VersionCalculation.IBaseVersion! baseVersion) -> GitVersion.SemanticVersion! GitVersion.VersionCalculation.IEffectiveBranchConfigurationFinder GitVersion.VersionCalculation.IEffectiveBranchConfigurationFinder.GetConfigurations(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration) -> System.Collections.Generic.IEnumerable! GitVersion.VersionCalculation.IIncrementStrategyFinder diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index 6a36f51f40..7dc5c58110 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -1,22 +1 @@ #nullable enable -GitVersion.OutputVariables.GitVersionVariables.Deconstruct(out string? AssemblySemFileVer, out string? AssemblySemVer, out string? BranchName, out string? BuildMetaData, out string? CommitDate, out string? CommitsSinceVersionSource, out string? EscapedBranchName, out string? FullBuildMetaData, out string! FullSemVer, out string? InformationalVersion, out string! Major, out string! MajorMinorPatch, out string! Minor, out string! Patch, out string? PreReleaseLabel, out string? PreReleaseLabelWithDash, out string? PreReleaseNumber, out string? PreReleaseTag, out string? PreReleaseTagWithDash, out string! SemVer, out string? Sha, out string? ShortSha, out string? UncommittedChanges, out string? VersionSourceDistance, out string? VersionSourceIncrement, out string? VersionSourceSemVer, out string? VersionSourceSha, out string! WeightedPreReleaseNumber) -> void -GitVersion.OutputVariables.GitVersionVariables.GitVersionVariables(string? AssemblySemFileVer, string? AssemblySemVer, string? BranchName, string? BuildMetaData, string? CommitDate, string? CommitsSinceVersionSource, string? EscapedBranchName, string? FullBuildMetaData, string! FullSemVer, string? InformationalVersion, string! Major, string! MajorMinorPatch, string! Minor, string! Patch, string? PreReleaseLabel, string? PreReleaseLabelWithDash, string? PreReleaseNumber, string? PreReleaseTag, string? PreReleaseTagWithDash, string! SemVer, string? Sha, string? ShortSha, string? UncommittedChanges, string? VersionSourceDistance, string? VersionSourceIncrement, string? VersionSourceSemVer, string? VersionSourceSha, string! WeightedPreReleaseNumber) -> void -GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.get -> string? -GitVersion.OutputVariables.GitVersionVariables.VersionSourceDistance.init -> void -GitVersion.OutputVariables.GitVersionVariables.VersionSourceIncrement.get -> string? -GitVersion.OutputVariables.GitVersionVariables.VersionSourceIncrement.init -> void -GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.get -> string? -GitVersion.OutputVariables.GitVersionVariables.VersionSourceSemVer.init -> void -GitVersion.SemanticVersionBuildMetaData.SemanticVersionBuildMetaData(GitVersion.SemanticVersion? versionSourceSemVer, string? versionSourceSha, long? commitsSinceTag, string? branch, string? commitSha, string? commitShortSha, System.DateTimeOffset? commitDate, long numberOfUnCommittedChanges, GitVersion.VersionField versionSourceIncrement, string? otherMetadata = null) -> void -GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.get -> long -GitVersion.SemanticVersionBuildMetaData.VersionSourceDistance.init -> void -GitVersion.SemanticVersionBuildMetaData.VersionSourceIncrement.get -> GitVersion.VersionField -GitVersion.SemanticVersionBuildMetaData.VersionSourceIncrement.init -> void -GitVersion.SemanticVersionBuildMetaData.VersionSourceSemVer.get -> GitVersion.SemanticVersion? -GitVersion.SemanticVersionBuildMetaData.VersionSourceSemVer.init -> void -GitVersion.SemanticVersionFormatValues.VersionSourceDistance.get -> string! -GitVersion.SemanticVersionFormatValues.VersionSourceIncrement.get -> string! -GitVersion.SemanticVersionFormatValues.VersionSourceSemVer.get -> string? -GitVersion.VersionCalculation.BaseVersion.Increment.get -> GitVersion.VersionField -GitVersion.VersionCalculation.IDeploymentModeCalculator.Calculate(GitVersion.SemanticVersion! semanticVersion, GitVersion.VersionCalculation.IBaseVersion! baseVersion) -> GitVersion.SemanticVersion! -GitVersion.VersionCalculation.IBaseVersion.Increment.get -> GitVersion.VersionField diff --git a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt index 3482b74cb5..bfb47affab 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt @@ -68,6 +68,12 @@ GitVersion.MsBuild.Tasks.GetVersion.ShortSha.get -> string! GitVersion.MsBuild.Tasks.GetVersion.ShortSha.set -> void GitVersion.MsBuild.Tasks.GetVersion.UncommittedChanges.get -> string! GitVersion.MsBuild.Tasks.GetVersion.UncommittedChanges.set -> void +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.get -> string! +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.set -> void +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceIncrement.get -> string! +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceIncrement.set -> void +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSemVer.get -> string! +GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSemVer.set -> void GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSha.get -> string! GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSha.set -> void GitVersion.MsBuild.Tasks.GetVersion.WeightedPreReleaseNumber.get -> string! diff --git a/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt b/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt index 03c012c827..7dc5c58110 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt @@ -1,7 +1 @@ #nullable enable -GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.get -> string! -GitVersion.MsBuild.Tasks.GetVersion.VersionSourceDistance.set -> void -GitVersion.MsBuild.Tasks.GetVersion.VersionSourceIncrement.get -> string! -GitVersion.MsBuild.Tasks.GetVersion.VersionSourceIncrement.set -> void -GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSemVer.get -> string! -GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSemVer.set -> void From 4326046263da531ad3aae712fb4928c202cdb874 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 14:00:04 +0000 Subject: [PATCH 155/358] (deps): Bump JsonSchema.Net.Generation from 7.0.1 to 7.1.0 --- updated-dependencies: - dependency-name: JsonSchema.Net.Generation dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 482b84d384..3f60495642 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -20,7 +20,7 @@ - + From 38200ff0480e2787d57e689b0a9821668ffe29fe Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 16 Feb 2026 16:00:40 +0100 Subject: [PATCH 156/358] chore(release-manager): Reorder issue label aliases Organizes release label aliases for improved readability within the configuration. --- GitReleaseManager.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/GitReleaseManager.yml b/GitReleaseManager.yml index 8e0b3fb546..cd5962bedf 100644 --- a/GitReleaseManager.yml +++ b/GitReleaseManager.yml @@ -11,12 +11,6 @@ issue-labels-alias: - name: breaking change header: Breaking change plural: Breaking changes -- name: bug - header: Bug - plural: Bugs -- name: dependencies - header: Dependencies - plural: Dependencies - name: documentation header: Documentation plural: Documentation @@ -26,6 +20,12 @@ issue-labels-alias: - name: improvement header: Improvements plural: Improvements +- name: bug + header: Bug + plural: Bugs +- name: dependencies + header: Dependencies + plural: Dependencies create: include-sha-section: true sha-section-heading: "SHA256 Hashes of the release artifacts" From a8272d2696bd5284b559397c009109ecf9250a00 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 16 Feb 2026 16:32:27 +0100 Subject: [PATCH 157/358] chore(dependabot): Configure dependency update milestones Assigns milestone 82 (6.x) to dotnet-sdk and NuGet dependency pull requests for improved organization. --- .github/dependabot.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 87b6a493c0..72ea4785e2 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,6 +1,7 @@ version: 2 updates: - package-ecosystem: dotnet-sdk + milestone: 82 # Corresponds to 6.x labels: - "dependencies" commit-message: @@ -10,6 +11,7 @@ updates: interval: cron cronjob: "0 12 * * *" - package-ecosystem: nuget + milestone: 82 # Corresponds to 6.x labels: - "dependencies" commit-message: From a9661da1c1bb3e407314389693539b93ce710943 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 12:54:04 +0000 Subject: [PATCH 158/358] (deps): Bump Scriban from 6.5.2 to 6.5.3 --- updated-dependencies: - dependency-name: Scriban dependency-version: 6.5.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 62336a5869..7562d63d60 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -25,7 +25,7 @@ - + From 7bc52d562cd1f1eb60fc3a23815b4d9072c6cc8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 12:53:56 +0000 Subject: [PATCH 159/358] (deps): Bump NUnit from 4.4.0 to 4.5.0 --- updated-dependencies: - dependency-name: NUnit dependency-version: 4.5.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 7562d63d60..16d06fc0ef 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -15,7 +15,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive From fd2050d1a737fa86141d73c91dc9050ad50efa44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 12:28:27 +0000 Subject: [PATCH 160/358] (deps): Bump the microsoft group with 1 update Bumps Microsoft.NET.Test.Sdk from 18.0.1 to 18.3.0 --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- src/Directory.Packages.props | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 16d06fc0ef..0320130278 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -14,7 +14,7 @@ - + all diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 3f60495642..e6084a3a92 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -28,7 +28,7 @@ - + From 7ff65653001c4fa03a42415a85ad46622f8fdd0a Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 25 Feb 2026 08:07:08 +0100 Subject: [PATCH 161/358] chore(dependabot): Group dependency updates by name Consolidate multiple updates for a single dependency into one pull request. --- .github/dependabot.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 72ea4785e2..304b667522 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -18,25 +18,32 @@ updates: prefix: "(deps)" groups: microsoft: + group-by: dependency-name patterns: - "Microsoft.*" - "System.*" Microsoft_CodeAnalysis: + group-by: dependency-name patterns: - "Microsoft.CodeAnalysis.*" analyzers: + group-by: dependency-name patterns: - "*Analyzers" serilog: + group-by: dependency-name patterns: - "Serilog.*" nunit: + group-by: dependency-name patterns: - "NUnit.*" LibGit2Sharp: + group-by: dependency-name patterns: - "LibGit2Sharp.*" JsonSchemaNet: + group-by: dependency-name patterns: - "JsonSchemaNet.*" directories: From 464df06536a05e5e469bbaa0b7290caf464cbb0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 28 Feb 2026 03:47:53 +0000 Subject: [PATCH 162/358] (docs deps): Bump minimatch Bumps and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together. Updates `minimatch` from 9.0.5 to 9.0.9 - [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md) - [Commits](https://github.com/isaacs/minimatch/compare/v9.0.5...v9.0.9) Updates `minimatch` from 5.1.0 to 5.1.9 - [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md) - [Commits](https://github.com/isaacs/minimatch/compare/v9.0.5...v9.0.9) Updates `minimatch` from 3.1.2 to 3.1.5 - [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md) - [Commits](https://github.com/isaacs/minimatch/compare/v9.0.5...v9.0.9) --- updated-dependencies: - dependency-name: minimatch dependency-version: 9.0.9 dependency-type: indirect - dependency-name: minimatch dependency-version: 5.1.9 dependency-type: indirect - dependency-name: minimatch dependency-version: 3.1.5 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index 90869e57e3..e4a0af4d52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -437,9 +437,9 @@ } }, "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -4375,11 +4375,10 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, - "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -11164,13 +11163,12 @@ } }, "node_modules/unified-engine/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -12110,9 +12108,9 @@ } }, "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -15030,9 +15028,9 @@ "dev": true }, "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "peer": true, "requires": { @@ -20522,12 +20520,12 @@ } }, "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "requires": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" } } } From 385bd7e5764a6d1d39fac5f5f4cc6704fbd33d96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 28 Feb 2026 12:02:48 +0000 Subject: [PATCH 163/358] (build deps): Bump the actions group with 2 updates Bumps the actions group with 2 updates: [actions/download-artifact](https://github.com/actions/download-artifact) and [actions/upload-artifact](https://github.com/actions/upload-artifact). Updates `actions/download-artifact` from 7 to 8 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v7...v8) Updates `actions/upload-artifact` from 6 to 7 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: actions/upload-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] --- .github/workflows/_artifacts_linux.yml | 4 ++-- .github/workflows/_artifacts_windows.yml | 2 +- .github/workflows/_build.yml | 6 +++--- .github/workflows/_docker.yml | 2 +- .github/workflows/_publish.yml | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/_artifacts_linux.yml b/.github/workflows/_artifacts_linux.yml index 53caa6174e..f6484942fd 100644 --- a/.github/workflows/_artifacts_linux.yml +++ b/.github/workflows/_artifacts_linux.yml @@ -37,13 +37,13 @@ jobs: name: Restore State uses: ./.github/actions/cache-restore - - uses: actions/download-artifact@v7 + uses: actions/download-artifact@v8 name: Download nuget packages with: name: nuget path: ${{ github.workspace }}/artifacts/packages/nuget - - uses: actions/download-artifact@v7 + uses: actions/download-artifact@v8 name: Download native packages with: name: native-Linux diff --git a/.github/workflows/_artifacts_windows.yml b/.github/workflows/_artifacts_windows.yml index 0a94a90a72..8405cb20de 100644 --- a/.github/workflows/_artifacts_windows.yml +++ b/.github/workflows/_artifacts_windows.yml @@ -24,7 +24,7 @@ jobs: name: Restore State uses: ./.github/actions/cache-restore - - uses: actions/download-artifact@v7 + uses: actions/download-artifact@v8 name: Download nuget packages with: name: nuget diff --git a/.github/workflows/_build.yml b/.github/workflows/_build.yml index e8c0286999..cb2606a2cc 100644 --- a/.github/workflows/_build.yml +++ b/.github/workflows/_build.yml @@ -29,21 +29,21 @@ jobs: run: dotnet run/build.dll --target=Package - name: 'Upload nuget packages' - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 if: matrix.os == 'windows-2025' with: name: nuget path: ${{ github.workspace }}/artifacts/packages/nuget - name: 'Upload native packages' - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 if: matrix.os == 'windows-2025' with: name: native-${{ runner.os }} path: ${{ github.workspace }}/artifacts/packages/native/*.zip - name: 'Upload native packages' - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 if: matrix.os != 'windows-2025' with: name: native-${{ runner.os }} diff --git a/.github/workflows/_docker.yml b/.github/workflows/_docker.yml index 473b17734c..a8ce60de50 100644 --- a/.github/workflows/_docker.yml +++ b/.github/workflows/_docker.yml @@ -37,7 +37,7 @@ jobs: name: Restore State uses: ./.github/actions/cache-restore - - uses: actions/download-artifact@v7 + uses: actions/download-artifact@v8 name: Download nuget packages with: name: nuget diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index 36b262e5af..f6a8aa9298 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -28,7 +28,7 @@ jobs: name: Restore State uses: ./.github/actions/cache-restore - - uses: actions/download-artifact@v7 + uses: actions/download-artifact@v8 name: Download nuget packages with: name: nuget From 661103df529ce94437150d5bc1114a21ffe7dbb0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 13:39:56 +0000 Subject: [PATCH 164/358] (deps): Bump JsonSchema.Net.Generation from 7.1.0 to 7.1.1 --- updated-dependencies: - dependency-name: JsonSchema.Net.Generation dependency-version: 7.1.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index e6084a3a92..46b73e2c56 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -20,7 +20,7 @@ - + From 36c46ee71c6f80aaddd248044c85b7d65792342a Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 2 Mar 2026 19:39:51 +0100 Subject: [PATCH 165/358] refactor(app): Move help/version command handling Relocates the processing of --help and --version options to GitVersionApp, decoupling IVersionWriter and IHelpWriter dependencies from GitVersionExecutor. --- src/GitVersion.App/GitVersionApp.cs | 30 ++++++++++++++- src/GitVersion.App/GitVersionExecutor.cs | 47 +++++------------------- 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/src/GitVersion.App/GitVersionApp.cs b/src/GitVersion.App/GitVersionApp.cs index df8cf8c3d8..5667656ed1 100644 --- a/src/GitVersion.App/GitVersionApp.cs +++ b/src/GitVersion.App/GitVersionApp.cs @@ -7,11 +7,13 @@ internal class GitVersionApp( ILog log, IHostApplicationLifetime applicationLifetime, IGitVersionExecutor gitVersionExecutor, + IServiceProvider serviceProvider, IOptions options) { private readonly ILog log = log.NotNull(); private readonly IHostApplicationLifetime applicationLifetime = applicationLifetime.NotNull(); private readonly IGitVersionExecutor gitVersionExecutor = gitVersionExecutor.NotNull(); + private readonly IServiceProvider serviceProvider = serviceProvider.NotNull(); private readonly IOptions options = options.NotNull(); public Task RunAsync(CancellationToken _) @@ -20,7 +22,10 @@ public Task RunAsync(CancellationToken _) { var gitVersionOptions = this.options.Value; this.log.Verbosity = gitVersionOptions.Verbosity; - SysEnv.ExitCode = this.gitVersionExecutor.Execute(gitVersionOptions); + + SysEnv.ExitCode = IsHelpOrVersionCommand(gitVersionOptions, out var exitCode) + ? exitCode + : this.gitVersionExecutor.Execute(gitVersionOptions); } catch (Exception exception) { @@ -31,4 +36,27 @@ public Task RunAsync(CancellationToken _) this.applicationLifetime.StopApplication(); return Task.CompletedTask; } + + private bool IsHelpOrVersionCommand(GitVersionOptions gitVersionOptions, out int exitCode) + { + if (gitVersionOptions.IsVersion) + { + var versionWriter = serviceProvider.GetRequiredService(); + var assembly = Assembly.GetExecutingAssembly(); + versionWriter.Write(assembly); + exitCode = 0; + return true; + } + + if (gitVersionOptions.IsHelp) + { + var helpWriter = serviceProvider.GetRequiredService(); + helpWriter.Write(); + exitCode = 0; + return true; + } + + exitCode = 0; + return false; + } } diff --git a/src/GitVersion.App/GitVersionExecutor.cs b/src/GitVersion.App/GitVersionExecutor.cs index 36199ac398..691d9e47c8 100644 --- a/src/GitVersion.App/GitVersionExecutor.cs +++ b/src/GitVersion.App/GitVersionExecutor.cs @@ -11,8 +11,6 @@ internal class GitVersionExecutor( ILog log, IFileSystem fileSystem, IConsole console, - IVersionWriter versionWriter, - IHelpWriter helpWriter, IConfigurationFileLocator configurationFileLocator, IConfigurationProvider configurationProvider, IConfigurationSerializer configurationSerializer, @@ -25,8 +23,6 @@ internal class GitVersionExecutor( private readonly ILog log = log.NotNull(); private readonly IFileSystem fileSystem = fileSystem.NotNull(); private readonly IConsole console = console.NotNull(); - private readonly IVersionWriter versionWriter = versionWriter.NotNull(); - private readonly IHelpWriter helpWriter = helpWriter.NotNull(); private readonly IConfigurationFileLocator configurationFileLocator = configurationFileLocator.NotNull(); private readonly IConfigurationProvider configurationProvider = configurationProvider.NotNull(); @@ -39,10 +35,8 @@ internal class GitVersionExecutor( public int Execute(GitVersionOptions gitVersionOptions) { - if (!HandleNonMainCommand(gitVersionOptions, out var exitCode)) - { - exitCode = RunGitVersionTool(gitVersionOptions); - } + Initialize(gitVersionOptions); + var exitCode = RunGitVersionTool(gitVersionOptions); if (exitCode != 0) { @@ -103,23 +97,8 @@ private int RunGitVersionTool(GitVersionOptions gitVersionOptions) return 0; } - private bool HandleNonMainCommand(GitVersionOptions gitVersionOptions, out int exitCode) + private void Initialize(GitVersionOptions gitVersionOptions) { - if (gitVersionOptions.IsVersion) - { - var assembly = Assembly.GetExecutingAssembly(); - this.versionWriter.Write(assembly); - exitCode = 0; - return true; - } - - if (gitVersionOptions.IsHelp) - { - this.helpWriter.Write(); - exitCode = 0; - return true; - } - if (gitVersionOptions.Diag) { gitVersionOptions.Settings.NoCache = true; @@ -142,21 +121,15 @@ private bool HandleNonMainCommand(GitVersionOptions gitVersionOptions, out int e this.log.Info("Working directory: " + workingDirectory); } - if (gitVersionOptions.ConfigurationInfo.ShowConfiguration) + if (!gitVersionOptions.ConfigurationInfo.ShowConfiguration) return; + + if (gitVersionOptions.RepositoryInfo.TargetUrl.IsNullOrWhiteSpace()) { - if (gitVersionOptions.RepositoryInfo.TargetUrl.IsNullOrWhiteSpace()) - { - this.configurationFileLocator.Verify(workingDirectory, this.repositoryInfo.ProjectRootDirectory); - } - var configuration = this.configurationProvider.Provide(); - var configurationString = configurationSerializer.Serialize(configuration); - this.console.WriteLine(configurationString); - exitCode = 0; - return true; + this.configurationFileLocator.Verify(workingDirectory, this.repositoryInfo.ProjectRootDirectory); } - - exitCode = 0; - return false; + var configuration = this.configurationProvider.Provide(); + var configurationString = this.configurationSerializer.Serialize(configuration); + this.console.WriteLine(configurationString); } private static void ConfigureLogging(GitVersionOptions gitVersionOptions, ILog log, IFileSystem fileSystem) From 412b1fa96637e8f32c3bea7d6700846c1bfba74e Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 2 Mar 2026 20:01:51 +0100 Subject: [PATCH 166/358] refactor(app): Move help and version output to parser Relocate help and version output logic from `GitVersionApp` to `ArgumentParser`. Simplify `GitVersionApp` startup by removing `IServiceProvider` dependency for these commands. --- src/GitVersion.App/ArgumentParser.cs | 7 ++++++ src/GitVersion.App/GitVersionApp.cs | 35 ++++++---------------------- 2 files changed, 14 insertions(+), 28 deletions(-) diff --git a/src/GitVersion.App/ArgumentParser.cs b/src/GitVersion.App/ArgumentParser.cs index d7b4df31bc..49f0c2f1b3 100644 --- a/src/GitVersion.App/ArgumentParser.cs +++ b/src/GitVersion.App/ArgumentParser.cs @@ -12,6 +12,8 @@ internal class ArgumentParser(IEnvironment environment, IFileSystem fileSystem, ICurrentBuildAgent buildAgent, IConsole console, + IHelpWriter helpWriter, + IVersionWriter versionWriter, IGlobbingResolver globbingResolver) : IArgumentParser { @@ -19,6 +21,8 @@ internal class ArgumentParser(IEnvironment environment, private readonly IFileSystem fileSystem = fileSystem.NotNull(); private readonly ICurrentBuildAgent buildAgent = buildAgent.NotNull(); private readonly IConsole console = console.NotNull(); + private readonly IHelpWriter helpWriter = helpWriter.NotNull(); + private readonly IVersionWriter versionWriter = versionWriter.NotNull(); private readonly IGlobbingResolver globbingResolver = globbingResolver.NotNull(); private const string defaultOutputFileName = "GitVersion.json"; @@ -53,6 +57,7 @@ public Arguments ParseArguments(string[] commandLineArguments) if (firstArgument.IsHelp()) { + helpWriter.Write(); return new Arguments { IsHelp = true @@ -61,6 +66,8 @@ public Arguments ParseArguments(string[] commandLineArguments) if (firstArgument.IsSwitch("version")) { + var assembly = Assembly.GetExecutingAssembly(); + versionWriter.Write(assembly); return new Arguments { IsVersion = true diff --git a/src/GitVersion.App/GitVersionApp.cs b/src/GitVersion.App/GitVersionApp.cs index 5667656ed1..af25e4e2bb 100644 --- a/src/GitVersion.App/GitVersionApp.cs +++ b/src/GitVersion.App/GitVersionApp.cs @@ -7,13 +7,11 @@ internal class GitVersionApp( ILog log, IHostApplicationLifetime applicationLifetime, IGitVersionExecutor gitVersionExecutor, - IServiceProvider serviceProvider, IOptions options) { private readonly ILog log = log.NotNull(); private readonly IHostApplicationLifetime applicationLifetime = applicationLifetime.NotNull(); private readonly IGitVersionExecutor gitVersionExecutor = gitVersionExecutor.NotNull(); - private readonly IServiceProvider serviceProvider = serviceProvider.NotNull(); private readonly IOptions options = options.NotNull(); public Task RunAsync(CancellationToken _) @@ -21,11 +19,15 @@ public Task RunAsync(CancellationToken _) try { var gitVersionOptions = this.options.Value; + + if (gitVersionOptions.IsHelp || gitVersionOptions.IsVersion) + { + SysEnv.ExitCode = 0; + return Task.CompletedTask; + } this.log.Verbosity = gitVersionOptions.Verbosity; - SysEnv.ExitCode = IsHelpOrVersionCommand(gitVersionOptions, out var exitCode) - ? exitCode - : this.gitVersionExecutor.Execute(gitVersionOptions); + SysEnv.ExitCode = this.gitVersionExecutor.Execute(gitVersionOptions); } catch (Exception exception) { @@ -36,27 +38,4 @@ public Task RunAsync(CancellationToken _) this.applicationLifetime.StopApplication(); return Task.CompletedTask; } - - private bool IsHelpOrVersionCommand(GitVersionOptions gitVersionOptions, out int exitCode) - { - if (gitVersionOptions.IsVersion) - { - var versionWriter = serviceProvider.GetRequiredService(); - var assembly = Assembly.GetExecutingAssembly(); - versionWriter.Write(assembly); - exitCode = 0; - return true; - } - - if (gitVersionOptions.IsHelp) - { - var helpWriter = serviceProvider.GetRequiredService(); - helpWriter.Write(); - exitCode = 0; - return true; - } - - exitCode = 0; - return false; - } } From 5eea7e4a3cb6efda694b7210b9659c1bd108a373 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 2 Mar 2026 21:08:37 +0100 Subject: [PATCH 167/358] refactor(app): Refactor app execution flow Extracts configuration display to an early exit and ensures consistent application shutdown in a `finally` block, clarifying handling for special commands. --- src/GitVersion.App/ArgumentParser.cs | 4 +-- src/GitVersion.App/GitVersionApp.cs | 14 +++++---- src/GitVersion.App/GitVersionExecutor.cs | 38 +++++++++++++----------- 3 files changed, 31 insertions(+), 25 deletions(-) diff --git a/src/GitVersion.App/ArgumentParser.cs b/src/GitVersion.App/ArgumentParser.cs index 49f0c2f1b3..8b1329831d 100644 --- a/src/GitVersion.App/ArgumentParser.cs +++ b/src/GitVersion.App/ArgumentParser.cs @@ -57,7 +57,7 @@ public Arguments ParseArguments(string[] commandLineArguments) if (firstArgument.IsHelp()) { - helpWriter.Write(); + this.helpWriter.Write(); return new Arguments { IsHelp = true @@ -67,7 +67,7 @@ public Arguments ParseArguments(string[] commandLineArguments) if (firstArgument.IsSwitch("version")) { var assembly = Assembly.GetExecutingAssembly(); - versionWriter.Write(assembly); + this.versionWriter.Write(assembly); return new Arguments { IsVersion = true diff --git a/src/GitVersion.App/GitVersionApp.cs b/src/GitVersion.App/GitVersionApp.cs index af25e4e2bb..910b7d9715 100644 --- a/src/GitVersion.App/GitVersionApp.cs +++ b/src/GitVersion.App/GitVersionApp.cs @@ -23,19 +23,23 @@ public Task RunAsync(CancellationToken _) if (gitVersionOptions.IsHelp || gitVersionOptions.IsVersion) { SysEnv.ExitCode = 0; - return Task.CompletedTask; } - this.log.Verbosity = gitVersionOptions.Verbosity; - - SysEnv.ExitCode = this.gitVersionExecutor.Execute(gitVersionOptions); + else + { + this.log.Verbosity = gitVersionOptions.Verbosity; + SysEnv.ExitCode = this.gitVersionExecutor.Execute(gitVersionOptions); + } } catch (Exception exception) { Console.Error.WriteLine(exception.Message); SysEnv.ExitCode = 1; } + finally + { + this.applicationLifetime.StopApplication(); + } - this.applicationLifetime.StopApplication(); return Task.CompletedTask; } } diff --git a/src/GitVersion.App/GitVersionExecutor.cs b/src/GitVersion.App/GitVersionExecutor.cs index 691d9e47c8..ced585b029 100644 --- a/src/GitVersion.App/GitVersionExecutor.cs +++ b/src/GitVersion.App/GitVersionExecutor.cs @@ -36,7 +36,10 @@ internal class GitVersionExecutor( public int Execute(GitVersionOptions gitVersionOptions) { Initialize(gitVersionOptions); - var exitCode = RunGitVersionTool(gitVersionOptions); + + var exitCode = !VerifyAndDisplayConfiguration(gitVersionOptions) + ? RunGitVersionTool(gitVersionOptions) + : 0; if (exitCode != 0) { @@ -104,7 +107,15 @@ private void Initialize(GitVersionOptions gitVersionOptions) gitVersionOptions.Settings.NoCache = true; } - ConfigureLogging(gitVersionOptions, this.log, this.fileSystem); + if (gitVersionOptions.Output.Contains(OutputType.BuildServer) || gitVersionOptions.LogFilePath == "console") + { + this.log.AddLogAppender(new ConsoleAppender()); + } + + if (gitVersionOptions.LogFilePath != null && gitVersionOptions.LogFilePath != "console") + { + this.log.AddLogAppender(new FileAppender(this.fileSystem, gitVersionOptions.LogFilePath)); + } var workingDirectory = gitVersionOptions.WorkingDirectory; if (gitVersionOptions.Diag) @@ -120,28 +131,19 @@ private void Initialize(GitVersionOptions gitVersionOptions) { this.log.Info("Working directory: " + workingDirectory); } + } - if (!gitVersionOptions.ConfigurationInfo.ShowConfiguration) return; - + private bool VerifyAndDisplayConfiguration(GitVersionOptions gitVersionOptions) + { + if (!gitVersionOptions.ConfigurationInfo.ShowConfiguration) return false; if (gitVersionOptions.RepositoryInfo.TargetUrl.IsNullOrWhiteSpace()) { - this.configurationFileLocator.Verify(workingDirectory, this.repositoryInfo.ProjectRootDirectory); + this.configurationFileLocator.Verify(gitVersionOptions.WorkingDirectory, this.repositoryInfo.ProjectRootDirectory); } + var configuration = this.configurationProvider.Provide(); var configurationString = this.configurationSerializer.Serialize(configuration); this.console.WriteLine(configurationString); - } - - private static void ConfigureLogging(GitVersionOptions gitVersionOptions, ILog log, IFileSystem fileSystem) - { - if (gitVersionOptions.Output.Contains(OutputType.BuildServer) || gitVersionOptions.LogFilePath == "console") - { - log.AddLogAppender(new ConsoleAppender()); - } - - if (gitVersionOptions.LogFilePath != null && gitVersionOptions.LogFilePath != "console") - { - log.AddLogAppender(new FileAppender(fileSystem, gitVersionOptions.LogFilePath)); - } + return true; } } From 45150306faaf7ec36c9406019a2f0e4ca6048a36 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 3 Mar 2026 12:54:25 +0100 Subject: [PATCH 168/358] chore(qodana): Update target frameworks Limits Qodana analysis to the .NET 10.0 framework. --- qodana.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qodana.yaml b/qodana.yaml index 0628d209ff..12195980d2 100644 --- a/qodana.yaml +++ b/qodana.yaml @@ -3,7 +3,7 @@ # https://www.jetbrains.com/help/qodana/qodana-yaml.html # #-------------------------------------------------------------------------------# version: "1.0" -#Specify inspection profile for code analysis +#Specify the inspection profile for code analysis profile: name: qodana.starter linter: jetbrains/qodana-cdnet:latest @@ -112,7 +112,7 @@ exclude: #Execute shell command before Qodana execution (Applied in CI/CD pipeline) bootstrap: curl -fsSL https://dot.net/v1/dotnet-install.sh | bash -s -- --jsonfile /data/project/global.json -i /usr/share/dotnet && dotnet build src/GitVersion.slnx dotnet: - frameworks: net8.0;net9.0;net10.0 + frameworks: net10.0 solution: src/GitVersion.slnx #Install IDE plugins before Qodana execution (Applied in CI/CD pipeline) From 7ba103c4e6a4188bd5863702be25b0a1dbbbe078 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 3 Mar 2026 16:52:31 +0100 Subject: [PATCH 169/358] build(cli): Include documentation response files in output Ensures .rsp files from the docs directory are copied to the output alongside the CLI executable. --- new-cli/GitVersion.Cli/GitVersion.Cli.csproj | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/new-cli/GitVersion.Cli/GitVersion.Cli.csproj b/new-cli/GitVersion.Cli/GitVersion.Cli.csproj index cb8d1fadd6..db8ac4e94e 100644 --- a/new-cli/GitVersion.Cli/GitVersion.Cli.csproj +++ b/new-cli/GitVersion.Cli/GitVersion.Cli.csproj @@ -31,4 +31,11 @@ + + + docs\%(Filename)%(Extension) + Always + + + From 1d03e20e2bbf81a8697a7393100d363e76c4a239 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Mar 2026 12:53:39 +0000 Subject: [PATCH 170/358] (deps): Bump Scriban from 6.5.3 to 6.5.4 --- updated-dependencies: - dependency-name: Scriban dependency-version: 6.5.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 0320130278..da11b7af57 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -25,7 +25,7 @@ - + From 824d856c3b1d06cb0e7b79ad28587180bf926c10 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 12:55:20 +0000 Subject: [PATCH 171/358] (deps): Bump Polly from 8.6.5 to 8.6.6 --- updated-dependencies: - dependency-name: Polly dependency-version: 8.6.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index da11b7af57..f1462afc4d 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -21,7 +21,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + From 7973944c922ad69321878fb56c4e49222ba8b652 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 14:49:46 +0000 Subject: [PATCH 172/358] (deps): Bump Scriban from 6.5.4 to 6.5.5 --- updated-dependencies: - dependency-name: Scriban dependency-version: 6.5.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index f1462afc4d..5cf85b7893 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -25,7 +25,7 @@ - + From bff3b5916b2bb99217dfbb1c524623bb0e040c70 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 6 Mar 2026 00:25:20 +0100 Subject: [PATCH 173/358] docs: add terminal output workaround example --- .github/copilot-instructions.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index f7c5bb1724..06c011a2f8 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -73,6 +73,17 @@ Purpose: give an AI coding agent the minimal, repo-specific knowledge needed to - **Quick pointers for the agent**: - Prefer editing/adding small focused changes under `src/` and run `dotnet test` on the affected test project(s). + - Terminal reliability tip (for `gh` and other interactive CLI tools): if foreground terminal output is truncated or switches to an alternate buffer, run the command with `isBackground=true` and then read full output with `get_terminal_output`. Also set `GH_PAGER=cat` and `GH_FORCE_TTY=0` for `gh` commands to reduce pager/TTY issues. + + Example workflow: + + ```text + 1) run_in_terminal( + command: "GH_PAGER=cat GH_FORCE_TTY=0 gh pr view 4840 --json number,title,url", + isBackground: true + ) + 2) get_terminal_output() + ``` - Use the `dotnet` CLI to validate packaging and cross-project integration, for example: ```bash From 3919e1e07f32ceead11889c0b46e4e4e7ffeea99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 12:50:49 +0000 Subject: [PATCH 174/358] (deps): Bump NUnit from 4.5.0 to 4.5.1 --- updated-dependencies: - dependency-name: NUnit dependency-version: 4.5.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 5cf85b7893..4af0845b80 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -15,7 +15,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive From e94865c62a5eda2cd7faee5f8afe27a05cd682ab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 8 Mar 2026 12:32:45 +0000 Subject: [PATCH 175/358] (deps): Bump the analyzers group with 1 update Bumps NUnit.Analyzers from 4.11.2 to 4.12.0 --- updated-dependencies: - dependency-name: NUnit.Analyzers dependency-version: 4.12.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: analyzers - dependency-name: NUnit.Analyzers dependency-version: 4.12.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: analyzers ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- src/Directory.Packages.props | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 4af0845b80..fed0c7855d 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -16,7 +16,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 46b73e2c56..5cd5ab12c4 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -32,7 +32,7 @@ - + From 280f912cde5a7912034a562432dd4086405c4cc8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Mar 2026 13:23:45 +0000 Subject: [PATCH 176/358] (deps): Bump JsonSchema.Net.Generation from 7.1.1 to 7.1.2 --- updated-dependencies: - dependency-name: JsonSchema.Net.Generation dependency-version: 7.1.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 5cd5ab12c4..e5851de051 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -20,7 +20,7 @@ - + From f4de6294460bf9eff4dcf17d007f00f765470e45 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2026 12:52:13 +0000 Subject: [PATCH 177/358] (deps): Bump Cake.Coverlet from 5.1.1 to 6.0.1 --- updated-dependencies: - dependency-name: Cake.Coverlet dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- build/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Directory.Packages.props b/build/Directory.Packages.props index 7c91310186..8cf5e174c4 100644 --- a/build/Directory.Packages.props +++ b/build/Directory.Packages.props @@ -5,7 +5,7 @@ - + From b5afa80a31dcefaaba336dc6f289a5b85477eb6d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2026 20:22:37 +0000 Subject: [PATCH 178/358] (sdk): Bump dotnet-sdk from 10.0.103 to 10.0.200 Bumps [dotnet-sdk](https://github.com/dotnet/sdk) from 10.0.103 to 10.0.200. - [Release notes](https://github.com/dotnet/sdk/releases) - [Commits](https://github.com/dotnet/sdk/compare/v10.0.103...v10.0.200) --- updated-dependencies: - dependency-name: dotnet-sdk dependency-version: 10.0.200 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index c7ec4c4b74..8c2cb85490 100644 --- a/global.json +++ b/global.json @@ -5,7 +5,7 @@ "src" ], "sdk": { - "version": "10.0.103" + "version": "10.0.200" }, "test": { "runner": "Microsoft.Testing.Platform" From 3b5d1e899c9c586795c7513caf76e31493f06485 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 10 Mar 2026 22:01:44 +0100 Subject: [PATCH 179/358] chore(dependabot): Refine scan directories for GitHub Actions --- .github/dependabot.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 304b667522..cf320504ae 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -64,7 +64,9 @@ updates: actions: patterns: - "actions/*" - directory: "/" + directories: + - "/.github/workflows" + - "/.github/actions" schedule: interval: cron cronjob: "0 12 * * *" From c7f6cccfed44ce1d729f196f3ce41b4bf69d8802 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 10 Mar 2026 22:33:39 +0100 Subject: [PATCH 180/358] chore(actions): Update GitHub Actions to v5 --- .github/actions/cache-restore/action.yml | 8 ++++---- .github/actions/docker-setup/action.yml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/actions/cache-restore/action.yml b/.github/actions/cache-restore/action.yml index 3a3487843b..84201a529a 100644 --- a/.github/actions/cache-restore/action.yml +++ b/.github/actions/cache-restore/action.yml @@ -7,19 +7,19 @@ runs: - name: Use cached cake frosting id: cache-cake - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: run key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - name: Use cached tools id: cache-tools - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: tools key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} - name: Setup .NET SDK - uses: actions/setup-dotnet@v4 + uses: actions/setup-dotnet@v5 with: - global-json-file: global.json \ No newline at end of file + global-json-file: global.json diff --git a/.github/actions/docker-setup/action.yml b/.github/actions/docker-setup/action.yml index d9a8e2d7b0..af83f0cc85 100644 --- a/.github/actions/docker-setup/action.yml +++ b/.github/actions/docker-setup/action.yml @@ -5,6 +5,6 @@ runs: using: 'composite' steps: - name: Set up Docker - uses: docker/setup-docker-action@v4 + uses: docker/setup-docker-action@v5 with: daemon-config: '{ "features": { "containerd-snapshotter": true } }' From bf79c256eef071db246befd0da80652497c4a385 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2026 21:56:57 +0000 Subject: [PATCH 181/358] (deps): Bump the microsoft group with 13 updates Bumps Microsoft.CodeAnalysis.Analyzers from 4.14.0 to 5.3.0 Bumps Microsoft.CodeAnalysis.CSharp from 5.0.0 to 5.3.0 Bumps Microsoft.Extensions.Configuration.CommandLine from 10.0.3 to 10.0.4 Bumps Microsoft.Extensions.DependencyInjection from 10.0.3 to 10.0.4 Bumps Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.3 to 10.0.4 Bumps Microsoft.Extensions.FileSystemGlobbing from 10.0.3 to 10.0.4 Bumps Microsoft.Extensions.Hosting from 10.0.3 to 10.0.4 Bumps Microsoft.Extensions.Logging.Abstractions from 10.0.3 to 10.0.4 Bumps Microsoft.Extensions.Options from 10.0.3 to 10.0.4 Bumps System.Collections.Immutable from 10.0.3 to 10.0.4 Bumps System.CommandLine from 2.0.3 to 2.0.4 Bumps System.Reflection.Metadata from 10.0.3 to 10.0.4 Bumps System.Text.Json from 10.0.3 to 10.0.4 --- updated-dependencies: - dependency-name: Microsoft.CodeAnalysis.Analyzers dependency-version: 5.3.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.CodeAnalysis.CSharp dependency-version: 5.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Logging.Abstractions dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.CommandLine dependency-version: 2.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.CodeAnalysis.CSharp dependency-version: 5.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: Microsoft.Extensions.Configuration.CommandLine dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.FileSystemGlobbing dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Hosting dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Options dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Collections.Immutable dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Reflection.Metadata dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 10 +-- src/Directory.Packages.props | 120 +++++++++++++++---------------- 2 files changed, 65 insertions(+), 65 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index fed0c7855d..61ad752ad6 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -11,9 +11,9 @@ - - - + + + @@ -30,8 +30,8 @@ - + - + \ No newline at end of file diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index e5851de051..c650566e96 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -1,62 +1,62 @@ - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 2804b61b78b79b639589e88c5062fa4284a2c70e Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Thu, 12 Mar 2026 13:17:15 +0100 Subject: [PATCH 182/358] deps: Bump Scriban, Polly, and NUnit package versions --- new-cli/Directory.Packages.props | 2 +- src/Directory.Packages.props | 4 ++-- src/GitVersion.Core/GitVersion.Core.csproj | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 61ad752ad6..5fd240e23a 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -25,7 +25,7 @@ - + diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index c650566e96..0501b79fb6 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -15,7 +15,7 @@ - + @@ -31,7 +31,7 @@ - + diff --git a/src/GitVersion.Core/GitVersion.Core.csproj b/src/GitVersion.Core/GitVersion.Core.csproj index 0843eba8da..97ff38e4db 100644 --- a/src/GitVersion.Core/GitVersion.Core.csproj +++ b/src/GitVersion.Core/GitVersion.Core.csproj @@ -12,9 +12,9 @@ - + From 59c8e05e90b33c97c9f722691d3156562420dccc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Mar 2026 13:02:12 +0000 Subject: [PATCH 183/358] (deps): Bump the microsoft group with 2 updates Bumps Microsoft.CodeAnalysis.Analyzers from 4.14.0 to 5.3.0 Bumps Microsoft.CodeAnalysis.CSharp from 5.0.0 to 5.3.0 --- updated-dependencies: - dependency-name: Microsoft.CodeAnalysis.Analyzers dependency-version: 5.3.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.CodeAnalysis.CSharp dependency-version: 5.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: Microsoft.CodeAnalysis.CSharp dependency-version: 5.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 6 +++--- .../SystemCommandlineGeneratorTests.cs | 19 +++++++++++-------- src/Directory.Packages.props | 10 +++++----- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 5fd240e23a..5c82ce7ea3 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -5,10 +5,10 @@ - - + + - + diff --git a/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs b/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs index ef1e150bcf..558be7654f 100644 --- a/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs +++ b/new-cli/GitVersion.Cli.Generator.Tests/SystemCommandlineGeneratorTests.cs @@ -1,9 +1,10 @@ -using System.CommandLine; +using System.CommandLine; using GitVersion.Infrastructure; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Testing; using Microsoft.CodeAnalysis.Testing; +using Microsoft.CodeAnalysis.Text; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; @@ -235,22 +236,24 @@ public record TestCommandSettings : GitVersionSettings public async Task ValidateGeneratedCommandImplementation() { var generatorType = typeof(SystemCommandlineGenerator); + var encoding = Encoding.UTF8; + const SourceHashAlgorithm sourceHash = SourceHashAlgorithm.Sha256; var sourceGeneratorTest = new CSharpSourceGeneratorTest { TestState = { Sources = { - (generatorType, "GlobalUsings.cs", GlobalUsingsCode), - (generatorType, "TestCommand.cs", TestCommandSourceCode), - (generatorType, "TestCommandSettings.cs", TestCommandSettingsSourceCode) + (generatorType, "GlobalUsings.cs", SourceText.From(GlobalUsingsCode, encoding, sourceHash)), + (generatorType, "TestCommand.cs", SourceText.From(TestCommandSourceCode, encoding, sourceHash)), + (generatorType, "TestCommandSettings.cs", SourceText.From(TestCommandSettingsSourceCode, encoding, sourceHash)) }, GeneratedSources = { - (generatorType,"TestCommandImpl.g.cs", ExpectedCommandImplText), - (generatorType,"CommandsModule.g.cs", ExpectedCommandsModuleText), - (generatorType,"RootCommandImpl.g.cs", ExpectedRootCommandImplText), - (generatorType,"CliAppImpl.g.cs", ExpectedCliAppImplText), + (generatorType,"TestCommandImpl.g.cs", SourceText.From(ExpectedCommandImplText, encoding, sourceHash)), + (generatorType,"CommandsModule.g.cs", SourceText.From(ExpectedCommandsModuleText, encoding, sourceHash)), + (generatorType,"RootCommandImpl.g.cs", SourceText.From(ExpectedRootCommandImplText, encoding, sourceHash)), + (generatorType,"CliAppImpl.g.cs", SourceText.From(ExpectedCliAppImplText, encoding, sourceHash)), }, ReferenceAssemblies = ReferenceAssemblies.Net.Net100, AdditionalReferences = diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 0501b79fb6..c6cc7ace23 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -6,10 +6,10 @@ - - - - + + + + @@ -59,4 +59,4 @@ - \ No newline at end of file + From 2da5fd4da407d3ba6c4e62e2acaedb4cfad94b98 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Thu, 12 Mar 2026 16:11:27 +0100 Subject: [PATCH 184/358] build(deps): Centralize Microsoft.Build package versions and update net10.0 to 18.4.0 --- src/Directory.Packages.props | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index c6cc7ace23..480c485df8 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -2,6 +2,11 @@ true + + 17.11.48 + 17.14.28 + 18.4.0 + @@ -44,19 +49,9 @@ - - - - - - - - - - - - - - + + + + From b6203573064645a73f04c57b5b1f3c3569931770 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Mar 2026 18:49:11 +0000 Subject: [PATCH 185/358] (sdk): Bump dotnet-sdk from 10.0.200 to 10.0.201 Bumps [dotnet-sdk](https://github.com/dotnet/sdk) from 10.0.200 to 10.0.201. - [Release notes](https://github.com/dotnet/sdk/releases) - [Commits](https://github.com/dotnet/sdk/compare/v10.0.200...v10.0.201) --- updated-dependencies: - dependency-name: dotnet-sdk dependency-version: 10.0.201 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 8c2cb85490..c0f5044756 100644 --- a/global.json +++ b/global.json @@ -5,7 +5,7 @@ "src" ], "sdk": { - "version": "10.0.200" + "version": "10.0.201" }, "test": { "runner": "Microsoft.Testing.Platform" From a315acbef55461836e8a2b7a0ccf91dcdd112e3a Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Thu, 12 Mar 2026 22:56:10 +0100 Subject: [PATCH 186/358] build(log): Enable diagnostic log verbosity for troubleshooting --- build/.run/Build Prepare.run.xml | 8 ++++++-- build/build/BuildLifetime.cs | 1 + build/build/Utilities/EnvVars.cs | 2 +- build/common/Lifetime/BuildLifetimeBase.cs | 8 ++++++++ build/common/Utilities/EnvVars.cs | 8 ++++++++ 5 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 build/common/Utilities/EnvVars.cs diff --git a/build/.run/Build Prepare.run.xml b/build/.run/Build Prepare.run.xml index 11b58ba567..e2d26b70e1 100644 --- a/build/.run/Build Prepare.run.xml +++ b/build/.run/Build Prepare.run.xml @@ -6,10 +6,14 @@ \ No newline at end of file diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 480c485df8..b529eba1cd 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -17,8 +17,8 @@ - - + + @@ -28,11 +28,11 @@ - - - - - + + + + + @@ -40,13 +40,13 @@ - - - + + + - - - + + + From 10e51e731d3c5562c047d61b732bb0e9f9838af6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 13:22:22 +0000 Subject: [PATCH 193/358] (deps): Bump Cake.Frosting from 6.0.0 to 6.1.0 --- updated-dependencies: - dependency-name: Cake.Frosting dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Directory.Packages.props b/build/Directory.Packages.props index 8cf5e174c4..a0fa0dcb3b 100644 --- a/build/Directory.Packages.props +++ b/build/Directory.Packages.props @@ -6,7 +6,7 @@ - + From 80893497868050d24dc97c01b30d34cbd1adcb4e Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 13 Mar 2026 15:25:21 +0100 Subject: [PATCH 194/358] docs(usage): Clarify GitVersion.Core as the library API --- docs/input/docs/usage/library.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/input/docs/usage/library.md b/docs/input/docs/usage/library.md index 0eaeb6a481..78a07ced84 100644 --- a/docs/input/docs/usage/library.md +++ b/docs/input/docs/usage/library.md @@ -15,9 +15,9 @@ patch releases, it's a useful option to some. :::{.alert .alert-warning} **Warning** -The library API is not stable and does not follow the semantic versioning +The library API (GitVersion.Core) is not stable and does not follow the semantic versioning of the GitVersion tool. A patch release of the tool may break the library and we will refactor and change the library API without notice. ::: -Explore the GitVersion library API +Explore the GitVersion Core library API From 9c1bd7058dfba30a83118fb7cd7dbe3901770924 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 13 Mar 2026 15:24:29 +0100 Subject: [PATCH 195/358] build(msbuild): Remove MSBuildToolVersion workaround The MSBuildToolVersion.VS2026 enum value is now directly available, making the previous integer-based workaround unnecessary. --- .../Tasks/ArtifactsMsBuildFullTest.cs | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs b/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs index 6551b6475b..d8cc15342f 100644 --- a/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs +++ b/build/artifacts/Tasks/ArtifactsMsBuildFullTest.cs @@ -23,9 +23,6 @@ public override void Run(BuildContext context) var nugetSource = context.MakeAbsolute(Paths.Nuget).FullPath; - const int toolVersionValue = 11; // Workaround for now. It should be removed when https://github.com/cake-build/cake/issues/4658 is merged - var isMsBuildToolVersionValid = Enum.IsDefined(typeof(MSBuildToolVersion), toolVersionValue); - context.Information("\nTesting msbuild task with dotnet build\n"); foreach (var netVersion in Constants.DotnetVersions) { @@ -46,25 +43,31 @@ public override void Run(BuildContext context) var exe = Paths.Integration.Combine("build").Combine(framework).CombineWithFilePath("app.dll"); context.ValidateOutput("dotnet", exe.FullPath, fullSemVer); - if (!isMsBuildToolVersionValid) continue; + if (!Enum.IsDefined(MSBuildToolVersion.VS2026)) continue; - const MSBuildToolVersion toolVersion = (MSBuildToolVersion)toolVersionValue; context.Information("\nTesting msbuild task with msbuild (for full framework)\n"); - var msBuildSettings = new MSBuildSettings + try { - Verbosity = Verbosity.Minimal, - ToolVersion = toolVersion, - Restore = true - }; + var msBuildSettings = new MSBuildSettings + { + Verbosity = Verbosity.Minimal, + ToolVersion = MSBuildToolVersion.VS2026, + Restore = true + }; - msBuildSettings.WithProperty("GitVersionMsBuildVersion", version); - msBuildSettings.WithProperty("RestoreSource", nugetSource); + msBuildSettings.WithProperty("GitVersionMsBuildVersion", version); + msBuildSettings.WithProperty("RestoreSource", nugetSource); - context.MSBuild(projPath.FullPath, msBuildSettings); + context.MSBuild(projPath.FullPath, msBuildSettings); - var fullExe = Paths.Integration.Combine("build").CombineWithFilePath("app.exe"); - context.ValidateOutput(fullExe.FullPath, null, fullSemVer); + var fullExe = Paths.Integration.Combine("build").CombineWithFilePath("app.exe"); + context.ValidateOutput(fullExe.FullPath, null, fullSemVer); + } + catch (Exception e) + { + context.Error(e.Message); + } } } } From d52c377a911dd3c90877d4cb65bcbb5db4ee71fd Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 13 Mar 2026 23:06:47 +0100 Subject: [PATCH 196/358] ci(workflows): Update Windows runner image to windows-2025-vs2026 --- .github/workflows/_artifacts_windows.yml | 4 ++-- .github/workflows/_build.yml | 8 ++++---- .github/workflows/_prepare.yml | 2 +- .github/workflows/_publish.yml | 2 +- .github/workflows/_unit_tests.yml | 2 +- .github/workflows/ci.yml | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/_artifacts_windows.yml b/.github/workflows/_artifacts_windows.yml index 8405cb20de..e710c0de9c 100644 --- a/.github/workflows/_artifacts_windows.yml +++ b/.github/workflows/_artifacts_windows.yml @@ -4,11 +4,11 @@ on: env: DOTNET_INSTALL_DIR: "./.dotnet" DOTNET_ROLL_FORWARD: "Major" - + jobs: artifacts: name: ${{ matrix.package }} - runs-on: windows-2025 + runs-on: windows-2025-vs2026 strategy: fail-fast: false matrix: diff --git a/.github/workflows/_build.yml b/.github/workflows/_build.yml index cb2606a2cc..08eeac7b10 100644 --- a/.github/workflows/_build.yml +++ b/.github/workflows/_build.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - os: [windows-2025, ubuntu-24.04, macos-26] + os: [windows-2025-vs2026, ubuntu-24.04, macos-26] runs-on: ${{ matrix.os }} steps: @@ -30,21 +30,21 @@ jobs: - name: 'Upload nuget packages' uses: actions/upload-artifact@v7 - if: matrix.os == 'windows-2025' + if: matrix.os == 'windows-2025-vs2026' with: name: nuget path: ${{ github.workspace }}/artifacts/packages/nuget - name: 'Upload native packages' uses: actions/upload-artifact@v7 - if: matrix.os == 'windows-2025' + if: matrix.os == 'windows-2025-vs2026' with: name: native-${{ runner.os }} path: ${{ github.workspace }}/artifacts/packages/native/*.zip - name: 'Upload native packages' uses: actions/upload-artifact@v7 - if: matrix.os != 'windows-2025' + if: matrix.os != 'windows-2025-vs2026' with: name: native-${{ runner.os }} path: ${{ github.workspace }}/artifacts/packages/native/*.tar.gz diff --git a/.github/workflows/_prepare.yml b/.github/workflows/_prepare.yml index 3c3ded468a..9a73269762 100644 --- a/.github/workflows/_prepare.yml +++ b/.github/workflows/_prepare.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - os: [windows-2025, ubuntu-24.04, macos-26] + os: [windows-2025-vs2026, ubuntu-24.04, macos-26] runs-on: ${{ matrix.os }} steps: diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index f6a8aa9298..ba7c61550c 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -8,7 +8,7 @@ env: jobs: publish: name: ${{ matrix.taskName }} - runs-on: windows-2025 + runs-on: windows-2025-vs2026 strategy: fail-fast: false matrix: diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index 61d579b6a2..03877feb44 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ windows-2025, ubuntu-24.04, macos-26 ] + os: [ windows-2025-vs2026, ubuntu-24.04, macos-26 ] dotnet_version: ${{ fromJson(inputs.dotnet_versions) }} runs-on: ${{ matrix.os }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f1b1dbbe2e..452a7a5a4a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -121,7 +121,7 @@ jobs: release: name: Release needs: [ publish, docker_linux_manifests ] - runs-on: windows-2025 + runs-on: windows-2025-vs2026 permissions: contents: write packages: write From a1e6fb759263bdcb47cd303a5a902d705449fb9b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 23:53:00 +0000 Subject: [PATCH 197/358] (docs deps): Bump undici from 6.21.3 to 6.24.0 Bumps [undici](https://github.com/nodejs/undici) from 6.21.3 to 6.24.0. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v6.21.3...v6.24.0) --- updated-dependencies: - dependency-name: undici dependency-version: 6.24.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 13 +++-- package.json | 134 +++++++++++++++++++++++----------------------- 2 files changed, 73 insertions(+), 74 deletions(-) diff --git a/package-lock.json b/package-lock.json index e4a0af4d52..b53f7d338c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11050,11 +11050,10 @@ } }, "node_modules/undici": { - "version": "6.21.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", - "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.0.tgz", + "integrity": "sha512-lVLNosgqo5EkGqh5XUDhGfsMSoO8K0BAN0TyJLvwNRSl4xWGZlCVYsAIpa/OpA3TvmnM01GWcoKmc3ZWo5wKKA==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.17" } @@ -20431,9 +20430,9 @@ } }, "undici": { - "version": "6.21.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", - "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", + "version": "6.24.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.0.tgz", + "integrity": "sha512-lVLNosgqo5EkGqh5XUDhGfsMSoO8K0BAN0TyJLvwNRSl4xWGZlCVYsAIpa/OpA3TvmnM01GWcoKmc3ZWo5wKKA==", "dev": true }, "unified-args": { diff --git a/package.json b/package.json index 26905302dc..59d2ff0cd2 100644 --- a/package.json +++ b/package.json @@ -28,74 +28,74 @@ }, "homepage": "https://gitversion.net", "devDependencies": { - "remark": "^15.0.1", - "remark-cli": "^12.0.1", - "remark-frontmatter": "^5.0.0", - "remark-heading-gap": "^6.0.0", - "remark-lint": "^10.0.1", - "remark-lint-blockquote-indentation": "^4.0.1", - "remark-lint-checkbox-character-style": "^5.0.1", - "remark-lint-checkbox-content-indent": "^5.0.1", - "remark-lint-code": "^2.0.0", - "remark-lint-code-block-style": "^4.0.1", - "remark-lint-definition-case": "^4.0.1", - "remark-lint-definition-spacing": "^4.0.1", - "remark-lint-fenced-code-flag": "^4.2.0", - "remark-lint-fenced-code-marker": "^4.0.1", - "remark-lint-file-extension": "^3.0.1", - "remark-lint-final-definition": "^4.0.2", - "remark-lint-final-newline": "^3.0.1", - "remark-lint-hard-break-spaces": "^4.1.1", - "remark-lint-heading-increment": "^4.0.1", - "remark-lint-heading-style": "^4.0.1", - "remark-lint-heading-whitespace": "^1.0.0", - "remark-lint-link-title-style": "^4.0.1", - "remark-lint-list-item-bullet-indent": "^5.0.1", - "remark-lint-list-item-content-indent": "^4.0.1", - "remark-lint-list-item-indent": "^4.0.1", - "remark-lint-maximum-heading-length": "^4.1.1", - "remark-lint-no-blockquote-without-marker": "^6.0.1", - "remark-lint-no-consecutive-blank-lines": "^5.0.1", - "remark-lint-no-dead-urls": "^2.0.1", - "remark-lint-no-duplicate-definitions": "^4.0.1", - "remark-lint-no-duplicate-headings": "^4.0.1", - "remark-lint-no-emphasis-as-heading": "^4.0.1", - "remark-lint-no-empty-sections": "^4.0.0", - "remark-lint-no-empty-url": "^4.0.1", - "remark-lint-no-file-name-articles": "^3.0.1", - "remark-lint-no-file-name-consecutive-dashes": "^3.0.1", - "remark-lint-no-file-name-irregular-characters": "^3.0.1", - "remark-lint-no-file-name-mixed-case": "^3.0.1", - "remark-lint-no-file-name-outer-dashes": "^3.0.1", - "remark-lint-no-heading-content-indent": "^5.0.1", - "remark-lint-no-heading-indent": "^5.0.1", - "remark-lint-no-heading-like-paragraph": "^4.0.1", - "remark-lint-no-literal-urls": "^4.0.1", - "remark-lint-no-multiple-toplevel-headings": "^4.0.1", - "remark-lint-no-reference-like-url": "^4.0.1", - "remark-lint-no-repeat-punctuation": "^0.1.4", - "remark-lint-no-shell-dollars": "^4.0.1", - "remark-lint-no-shortcut-reference-image": "^4.0.1", - "remark-lint-no-table-indentation": "^5.0.1", - "remark-lint-no-tabs": "^4.0.1", - "remark-lint-no-unused-definitions": "^4.0.2", - "remark-lint-ordered-list-marker-style": "^4.0.1", - "remark-lint-ordered-list-marker-value": "^4.0.1", - "remark-lint-rule-style": "^4.0.1", - "remark-lint-strong-marker": "^4.0.1", - "remark-lint-table-cell-padding": "^5.1.1", - "remark-lint-table-pipe-alignment": "^4.1.1", - "remark-lint-table-pipes": "^5.0.1", - "remark-lint-unordered-list-marker-style": "^4.0.1", - "remark-lint-write-good": "^1.2.0", - "remark-preset-lint-consistent": "^6.0.1", - "remark-preset-lint-markdown-style-guide": "^6.0.1", - "remark-preset-lint-recommended": "^7.0.1", - "remark-retext": "^6.0.1", - "remark-textr": "^6.1.0", - "remark-validate-links": "^13.1.0" + "remark": "15.0.1", + "remark-cli": "12.0.1", + "remark-frontmatter": "5.0.0", + "remark-heading-gap": "6.0.0", + "remark-lint": "10.0.1", + "remark-lint-blockquote-indentation": "4.0.1", + "remark-lint-checkbox-character-style": "5.0.1", + "remark-lint-checkbox-content-indent": "5.0.1", + "remark-lint-code": "2.0.0", + "remark-lint-code-block-style": "4.0.1", + "remark-lint-definition-case": "4.0.1", + "remark-lint-definition-spacing": "4.0.1", + "remark-lint-fenced-code-flag": "4.2.0", + "remark-lint-fenced-code-marker": "4.0.1", + "remark-lint-file-extension": "3.0.1", + "remark-lint-final-definition": "4.0.2", + "remark-lint-final-newline": "3.0.1", + "remark-lint-hard-break-spaces": "4.1.1", + "remark-lint-heading-increment": "4.0.1", + "remark-lint-heading-style": "4.0.1", + "remark-lint-heading-whitespace": "1.0.0", + "remark-lint-link-title-style": "4.0.1", + "remark-lint-list-item-bullet-indent": "5.0.1", + "remark-lint-list-item-content-indent": "4.0.1", + "remark-lint-list-item-indent": "4.0.1", + "remark-lint-maximum-heading-length": "4.1.1", + "remark-lint-no-blockquote-without-marker": "6.0.1", + "remark-lint-no-consecutive-blank-lines": "5.0.1", + "remark-lint-no-dead-urls": "2.0.1", + "remark-lint-no-duplicate-definitions": "4.0.1", + "remark-lint-no-duplicate-headings": "4.0.1", + "remark-lint-no-emphasis-as-heading": "4.0.1", + "remark-lint-no-empty-sections": "4.0.0", + "remark-lint-no-empty-url": "4.0.1", + "remark-lint-no-file-name-articles": "3.0.1", + "remark-lint-no-file-name-consecutive-dashes": "3.0.1", + "remark-lint-no-file-name-irregular-characters": "3.0.1", + "remark-lint-no-file-name-mixed-case": "3.0.1", + "remark-lint-no-file-name-outer-dashes": "3.0.1", + "remark-lint-no-heading-content-indent": "5.0.1", + "remark-lint-no-heading-indent": "5.0.1", + "remark-lint-no-heading-like-paragraph": "4.0.1", + "remark-lint-no-literal-urls": "4.0.1", + "remark-lint-no-multiple-toplevel-headings": "4.0.1", + "remark-lint-no-reference-like-url": "4.0.1", + "remark-lint-no-repeat-punctuation": "0.1.4", + "remark-lint-no-shell-dollars": "4.0.1", + "remark-lint-no-shortcut-reference-image": "4.0.1", + "remark-lint-no-table-indentation": "5.0.1", + "remark-lint-no-tabs": "4.0.1", + "remark-lint-no-unused-definitions": "4.0.2", + "remark-lint-ordered-list-marker-style": "4.0.1", + "remark-lint-ordered-list-marker-value": "4.0.1", + "remark-lint-rule-style": "4.0.1", + "remark-lint-strong-marker": "4.0.1", + "remark-lint-table-cell-padding": "5.1.1", + "remark-lint-table-pipe-alignment": "4.1.1", + "remark-lint-table-pipes": "5.0.1", + "remark-lint-unordered-list-marker-style": "4.0.1", + "remark-lint-write-good": "1.2.0", + "remark-preset-lint-consistent": "6.0.1", + "remark-preset-lint-markdown-style-guide": "6.0.1", + "remark-preset-lint-recommended": "7.0.1", + "remark-retext": "6.0.1", + "remark-textr": "6.1.0", + "remark-validate-links": "13.1.0" }, "overrides": { - "got": "^11.8.5" + "got": "11.8.5" } } From f2e7515603da72c677fb4685c5bfdee485713d85 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 15 Mar 2026 12:56:07 +0000 Subject: [PATCH 198/358] (deps): Bump JsonSchema.Net.Generation from 7.1.2 to 7.1.3 --- updated-dependencies: - dependency-name: JsonSchema.Net.Generation dependency-version: 7.1.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index b529eba1cd..998224d505 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -25,7 +25,7 @@ - + From 288abc3607d436dcfc300f23cac73280f39c1cf2 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 16 Mar 2026 03:33:18 +0100 Subject: [PATCH 199/358] ci(workflows): Rename release event dispatch payload tag key --- .github/workflows/gittools-actions.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gittools-actions.yml b/.github/workflows/gittools-actions.yml index 8d5bcd04eb..46b6691d35 100644 --- a/.github/workflows/gittools-actions.yml +++ b/.github/workflows/gittools-actions.yml @@ -40,4 +40,9 @@ jobs: token: ${{ secrets.RELEASE_GITHUB_TOKEN }} repository: ${{ github.repository_owner }}/actions event-type: gitversion-release-published - client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "tag": "${{ steps.get-version.outputs.version }}"}' + client-payload: | + { + "ref": "${{ github.ref }}", + "sha": "${{ github.sha }}", + "newTag": "${{ steps.get-version.outputs.version }}" + } From d7b065eb6b052e159a6df0fc4d3daa0203fd756e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 12:06:49 +0000 Subject: [PATCH 200/358] (build deps): Bump jetbrains/qodana-action in /.github/workflows Bumps [jetbrains/qodana-action](https://github.com/jetbrains/qodana-action) from 2025.3.1 to 2025.3.2. - [Release notes](https://github.com/jetbrains/qodana-action/releases) - [Commits](https://github.com/jetbrains/qodana-action/compare/v2025.3.1...v2025.3.2) --- updated-dependencies: - dependency-name: jetbrains/qodana-action dependency-version: 2025.3.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/qodana_analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/qodana_analysis.yml b/.github/workflows/qodana_analysis.yml index 1a1ef71570..4e30d2f20d 100644 --- a/.github/workflows/qodana_analysis.yml +++ b/.github/workflows/qodana_analysis.yml @@ -26,7 +26,7 @@ jobs: global-json-file: global.json - name: 'Qodana Scan' - uses: jetbrains/qodana-action@v2025.3.1 + uses: jetbrains/qodana-action@v2025.3.2 with: args: --baseline,qodana.sarif.json cache-default-branch-only: true From 331b233b5ff8339f031aa26ff95616591eaf42d6 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 16 Mar 2026 14:01:56 +0100 Subject: [PATCH 201/358] feat(build): Configure code coverage generation and publishing --- build/build/Tasks/Test/PublishCoverage.cs | 2 +- build/build/Tasks/Test/UnitTest.cs | 4 ++++ src/Directory.Build.props | 8 ++++---- src/Directory.Packages.props | 3 ++- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/build/build/Tasks/Test/PublishCoverage.cs b/build/build/Tasks/Test/PublishCoverage.cs index 787fd15914..29df05aab6 100644 --- a/build/build/Tasks/Test/PublishCoverage.cs +++ b/build/build/Tasks/Test/PublishCoverage.cs @@ -20,7 +20,7 @@ public override bool ShouldRun(BuildContext context) public override void Run(BuildContext context) { var coverageFiles = context - .GetFiles($"{Paths.TestOutput}/*.coverage.*.xml") + .GetFiles($"{Paths.Src}/**/coverage.*.xml") .Select(file => context.MakeRelative(file).ToString()).ToArray(); var token = context.Credentials?.CodeCov?.Token; diff --git a/build/build/Tasks/Test/UnitTest.cs b/build/build/Tasks/Test/UnitTest.cs index 70ed853fba..6643d1ba4c 100644 --- a/build/build/Tasks/Test/UnitTest.cs +++ b/build/build/Tasks/Test/UnitTest.cs @@ -82,6 +82,10 @@ private static void TestProjectForTarget(BuildContext context, FilePath project, settings.WithArgumentCustomization(args => args .Append("--report-spekt-junit") .Append("--report-spekt-junit-filename").AppendQuoted(resultsPath.FullPath) + .Append("--coverlet") + .Append("--coverlet-output-format").AppendQuoted("cobertura") + .Append("--coverlet-exclude ").AppendQuoted("[GitVersion*.Tests]*") + .Append("--coverlet-exclude ").AppendQuoted("[GitTools.Testing]*") ); context.DotNetTest(project.FullPath, settings); diff --git a/src/Directory.Build.props b/src/Directory.Build.props index a28c20aa9e..2a6f60ad7d 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -75,17 +75,17 @@ + + - - - - all runtime; build; native; contentfiles; analyzers; buildtransitive + + diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 998224d505..049122f0ac 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -9,6 +9,7 @@ + @@ -54,4 +55,4 @@ - + \ No newline at end of file From 07fa6c1931ae517254c676182b232d7c99ff3c03 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 16 Mar 2026 14:36:30 +0100 Subject: [PATCH 202/358] build(deps): Bump Alpine and Fedora distribution versions --- build/common/Utilities/Constants.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/common/Utilities/Constants.cs b/build/common/Utilities/Constants.cs index 2a6ad5f6ff..4c31e213c2 100644 --- a/build/common/Utilities/Constants.cs +++ b/build/common/Utilities/Constants.cs @@ -24,10 +24,10 @@ public static class Constants public const string GitHubContainerRegistry = "ghcr.io"; public static readonly string[] DockerRegistries = [DockerHub, GitHub]; - public const string AlpineLatest = "alpine.3.22"; + public const string AlpineLatest = "alpine.3.23"; public const string CentosLatest = "centos.stream.9"; public const string DebianLatest = "debian.12"; - public const string FedoraLatest = "fedora.42"; + public const string FedoraLatest = "fedora.43"; public const string UbuntuLatest = "ubuntu.24.04"; public const string DockerDistroLatest = UbuntuLatest; From 481e594b7fa96df5bd84c10b02ac020fe970c5d3 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 16 Mar 2026 15:58:32 +0100 Subject: [PATCH 203/358] ci(unit-tests): Align build target, structure results, and upload coverage --- .github/codecov.yml | 37 +++++++++++++++++++++++++++++- .github/workflows/_unit_tests.yml | 19 +++++++++++---- build/build/Tasks/Test/UnitTest.cs | 28 ++++++---------------- 3 files changed, 57 insertions(+), 27 deletions(-) diff --git a/.github/codecov.yml b/.github/codecov.yml index f755f56800..311b097fce 100644 --- a/.github/codecov.yml +++ b/.github/codecov.yml @@ -1,11 +1,46 @@ +comment: + layout: "header, diff, flags, components" + behavior: default + require_changes: false +component_management: + individual_components: + - component_id: gitversion-app + name: GitVersion.App + paths: [ src/GitVersion.App/** ] + - component_id: gitversion-buildagents + name: GitVersion.BuildAgents + paths: [ src/GitVersion.BuildAgents/** ] + - component_id: gitversion-configuration + name: GitVersion.Configuration + paths: [ src/GitVersion.Configuration/** ] + - component_id: gitversion-core + name: GitVersion.Core + paths: [ src/GitVersion.Core/** ] + - component_id: gitversion-libgit2sharp + name: GitVersion.LibGit2Sharp + paths: [ src/GitVersion.LibGit2Sharp/** ] + - component_id: gitversion-msbuild + name: GitVersion.MsBuild + paths: [ src/GitVersion.MsBuild/** ] + - component_id: gitversion-output + name: GitVersion.Output + paths: [ src/GitVersion.Output/** ] coverage: range: 50..70 round: down precision: 2 status: + project: + default: + target: auto + base: auto + paths: + - src + branches: + - main patch: default: # basic target: auto threshold: 1% - base: auto + base: auto diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index 03877feb44..6321f3973a 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -11,8 +11,8 @@ env: jobs: unit_test: name: ${{ matrix.os }} - net${{ matrix.dotnet_version }} - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + permissions: + id-token: write strategy: fail-fast: false matrix: @@ -30,18 +30,27 @@ jobs: name: Restore State uses: ./.github/actions/cache-restore - - name: '[Unit Test]' + - + name: '[Unit Test]' uses: nick-fields/retry@v3 with: shell: pwsh timeout_minutes: 30 max_attempts: 3 retry_on: error - command: 'dotnet run/build.dll --target=Test --dotnet_version=${{ matrix.dotnet_version }}' + command: 'dotnet run/build.dll --target=UnitTest --dotnet_version=${{ matrix.dotnet_version }}' - name: Test Summary uses: test-summary/action@v2.4 if: always() && matrix.dotnet_version == '10.0' with: - paths: artifacts/test-results/*.results.xml + paths: artifacts/test-results/**/results.xml + + - + name: Upload Coverage + uses: codecov/codecov-action@v5 + if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' && matrix.dotnet_version == '10.0' + with: + directory: artifacts/test-results + use_oidc: true diff --git a/build/build/Tasks/Test/UnitTest.cs b/build/build/Tasks/Test/UnitTest.cs index 6643d1ba4c..b8466e2bdd 100644 --- a/build/build/Tasks/Test/UnitTest.cs +++ b/build/build/Tasks/Test/UnitTest.cs @@ -1,6 +1,4 @@ -using Cake.Common.Build.AzurePipelines.Data; using Cake.Common.Tools.DotNet.Test; -using Cake.Coverlet; using Cake.Incubator.LoggingExtensions; using Common.Utilities; @@ -49,24 +47,10 @@ public override void OnError(Exception exception, BuildContext context) throw exception; } - public override void Finally(BuildContext context) - { - var testResultsFiles = context.GetFiles($"{Paths.TestOutput}/*.results.xml"); - if (!context.IsAzurePipelineBuild || testResultsFiles.Count == 0) return; - - var data = new AzurePipelinesPublishTestResultsData - { - TestResultsFiles = testResultsFiles.ToArray(), - Platform = context.Platform.ToString(), - TestRunner = AzurePipelinesTestRunnerType.JUnit - }; - context.BuildSystem().AzurePipelines.Commands.PublishTestResults(data); - } - private static void TestProjectForTarget(BuildContext context, FilePath project, string framework) { var testResultsPath = Paths.TestOutput; - var projectName = $"{project.GetFilenameWithoutExtension()}.net{framework}"; + var projectName = $"{project.GetFilenameWithoutExtension()}"; var settings = new DotNetTestSettings { PathType = DotNetTestPathType.Project, @@ -78,14 +62,16 @@ private static void TestProjectForTarget(BuildContext context, FilePath project, }; settings.MSBuildSettings.SetContinuousIntegrationBuild(false); - var resultsPath = context.MakeAbsolute(testResultsPath.CombineWithFilePath($"{projectName}.results.xml")); + var resultsDirectory = context.MakeAbsolute(testResultsPath.Combine(projectName)); + settings.WithArgumentCustomization(args => args .Append("--report-spekt-junit") - .Append("--report-spekt-junit-filename").AppendQuoted(resultsPath.FullPath) + .Append("--report-spekt-junit-filename").AppendQuoted(resultsDirectory.CombineWithFilePath("results.xml").FullPath) + .Append("--results-directory").AppendQuoted(resultsDirectory.FullPath) .Append("--coverlet") .Append("--coverlet-output-format").AppendQuoted("cobertura") - .Append("--coverlet-exclude ").AppendQuoted("[GitVersion*.Tests]*") - .Append("--coverlet-exclude ").AppendQuoted("[GitTools.Testing]*") + .Append("--coverlet-exclude").AppendQuoted("[GitVersion*.Tests]*") + .Append("--coverlet-exclude").AppendQuoted("[GitVersion.Testing]*") ); context.DotNetTest(project.FullPath, settings); From 77bdd874efc5d50635f3b414a8957e9a6be70de7 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 16 Mar 2026 18:04:16 +0100 Subject: [PATCH 204/358] ci(qodana): Suppress .NET telemetry and standardize action arguments --- .github/workflows/qodana_analysis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/qodana_analysis.yml b/.github/workflows/qodana_analysis.yml index 4e30d2f20d..9beb385891 100644 --- a/.github/workflows/qodana_analysis.yml +++ b/.github/workflows/qodana_analysis.yml @@ -6,6 +6,9 @@ on: - main - 'fix/*' - 'feature/*' +env: + DOTNET_CLI_TELEMETRY_OPTOUT: true + DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true jobs: qodana: runs-on: ubuntu-latest @@ -28,7 +31,7 @@ jobs: name: 'Qodana Scan' uses: jetbrains/qodana-action@v2025.3.2 with: - args: --baseline,qodana.sarif.json + args: --baseline qodana.sarif.json cache-default-branch-only: true pr-mode: true env: From 329d120531db242872d6b161f138d11d393b3b9c Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 16 Mar 2026 18:28:52 +0100 Subject: [PATCH 205/358] ci(unit-tests): Upload test results to Codecov --- .github/workflows/_unit_tests.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index 6321f3973a..851a3eadf5 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -47,10 +47,20 @@ jobs: with: paths: artifacts/test-results/**/results.xml + - + name: Upload Coverage + uses: codecov/codecov-action@v5 + if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' && matrix.dotnet_version == '10.0' + with: + files: artifacts/test-results/**/results.xml + report_type: 'test_results' + use_oidc: true + - name: Upload Coverage uses: codecov/codecov-action@v5 if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' && matrix.dotnet_version == '10.0' with: directory: artifacts/test-results + report_type: 'coverage' use_oidc: true From 7dde6e717e1b39bd6768eab439035cb09173b484 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Mon, 16 Mar 2026 18:16:33 +0100 Subject: [PATCH 206/358] fix: include actual key name in /overrideconfig unsupported key error message * Initial plan * fix: include actual key name in /overrideconfig unsupported key error message Co-authored-by: denisbredikhin <11455823+denisbredikhin@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: denisbredikhin <11455823+denisbredikhin@users.noreply.github.com> --- src/GitVersion.App.Tests/ArgumentParserTests.cs | 2 +- src/GitVersion.App/ArgumentParser.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/GitVersion.App.Tests/ArgumentParserTests.cs b/src/GitVersion.App.Tests/ArgumentParserTests.cs index 850ba7342b..3f26dce25d 100644 --- a/src/GitVersion.App.Tests/ArgumentParserTests.cs +++ b/src/GitVersion.App.Tests/ArgumentParserTests.cs @@ -389,7 +389,7 @@ private static IEnumerable OverrideconfigWithInvalidOptionTestData }; yield return new TestCaseData("unknown-option=25") { - ExpectedResult = "Could not parse /overrideconfig option: unknown-option=25. Unsupported 'key'." + ExpectedResult = "Could not parse /overrideconfig option: unknown-option=25. Unsupported key 'unknown-option'." }; } diff --git a/src/GitVersion.App/ArgumentParser.cs b/src/GitVersion.App/ArgumentParser.cs index 8b1329831d..7c0d503053 100644 --- a/src/GitVersion.App/ArgumentParser.cs +++ b/src/GitVersion.App/ArgumentParser.cs @@ -464,7 +464,7 @@ private static void ParseOverrideConfig(Arguments arguments, IReadOnlyCollection var optionKey = keyAndValue[0].ToLowerInvariant(); if (!OverrideConfigurationOptionParser.SupportedProperties.Contains(optionKey)) { - throw new WarningException($"Could not parse /overrideconfig option: {keyValueOption}. Unsupported 'key'."); + throw new WarningException($"Could not parse /overrideconfig option: {keyValueOption}. Unsupported key '{keyAndValue[0]}'."); } parser.SetValue(optionKey, keyAndValue[1]); } From 911c254e1d1ce058d34470d57c192872ee55d558 Mon Sep 17 00:00:00 2001 From: Denis Bredikhin Date: Mon, 16 Mar 2026 21:40:00 +0100 Subject: [PATCH 207/358] use lowered optionKey instead of non-lowered Co-authored-by: Artur --- src/GitVersion.App/ArgumentParser.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GitVersion.App/ArgumentParser.cs b/src/GitVersion.App/ArgumentParser.cs index 7c0d503053..569e9c47f9 100644 --- a/src/GitVersion.App/ArgumentParser.cs +++ b/src/GitVersion.App/ArgumentParser.cs @@ -464,7 +464,7 @@ private static void ParseOverrideConfig(Arguments arguments, IReadOnlyCollection var optionKey = keyAndValue[0].ToLowerInvariant(); if (!OverrideConfigurationOptionParser.SupportedProperties.Contains(optionKey)) { - throw new WarningException($"Could not parse /overrideconfig option: {keyValueOption}. Unsupported key '{keyAndValue[0]}'."); + throw new WarningException($"Could not parse /overrideconfig option: {keyValueOption}. Unsupported key '{optionKey}'."); } parser.SetValue(optionKey, keyAndValue[1]); } From 519406aaebfbff3b7b75db125f3a0fdbc9090fe5 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 17 Mar 2026 08:11:27 +0100 Subject: [PATCH 208/358] remove Qodana support --- .github/workflows/qodana_analysis.yml | 38 - qodana.sarif.json | 160237 ----------------------- qodana.yaml | 120 - 3 files changed, 160395 deletions(-) delete mode 100644 .github/workflows/qodana_analysis.yml delete mode 100644 qodana.sarif.json delete mode 100644 qodana.yaml diff --git a/.github/workflows/qodana_analysis.yml b/.github/workflows/qodana_analysis.yml deleted file mode 100644 index 9beb385891..0000000000 --- a/.github/workflows/qodana_analysis.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Qodana -on: - workflow_dispatch: - push: - branches: - - main - - 'fix/*' - - 'feature/*' -env: - DOTNET_CLI_TELEMETRY_OPTOUT: true - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true -jobs: - qodana: - runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: write - checks: write - steps: - - - uses: actions/checkout@v6 - with: - ref: ${{ github.event.pull_request.head.sha }} - fetch-depth: 0 - - - name: Setup .NET SDK - uses: actions/setup-dotnet@v5 - with: - global-json-file: global.json - - - name: 'Qodana Scan' - uses: jetbrains/qodana-action@v2025.3.2 - with: - args: --baseline qodana.sarif.json - cache-default-branch-only: true - pr-mode: true - env: - QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} diff --git a/qodana.sarif.json b/qodana.sarif.json deleted file mode 100644 index 1f50cbde5f..0000000000 --- a/qodana.sarif.json +++ /dev/null @@ -1,160237 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/schemastore/schemastore/master/src/schemas/json/sarif-2.1.0-rtm.5.json", - "version": "2.1.0", - "runs": [ - { - "tool": { - "driver": { - "name": "QDNET", - "fullName": "Qodana for .NET", - "version": "243.24609", - "rules": [], - "taxa": [ - { - "id": "C#", - "name": "C#" - }, - { - "id": "C#/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++", - "name": "C/C++" - }, - { - "id": "C_C++/Clang Diagnostics", - "name": "Clang Diagnostics", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XAML", - "name": "XAML" - }, - { - "id": "XAML/Code Notification", - "name": "Code Notification", - "relationships": [ - { - "target": { - "id": "XAML", - "index": 4, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Unreal Engine", - "name": "Unreal Engine", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Language Usage Opportunities", - "name": "Language Usage Opportunities", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Clang-Tidy Checks", - "name": "Clang-Tidy Checks", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Sass_SCSS", - "name": "Sass/SCSS" - }, - { - "id": "HTML", - "name": "HTML" - }, - { - "id": "C#/Common Practices and Code Improvements", - "name": "Common Practices and Code Improvements", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PostCSS", - "name": "PostCSS" - }, - { - "id": "JavaScript and TypeScript", - "name": "JavaScript and TypeScript" - }, - { - "id": "JavaScript and TypeScript/Bitwise operation issues", - "name": "Bitwise operation issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Common Practices and Code Improvements", - "name": "Common Practices and Code Improvements", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/General", - "name": "General", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Unity", - "name": "Unity", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HTTP Client", - "name": "HTTP Client" - }, - { - "id": "EditorConfig", - "name": "EditorConfig" - }, - { - "id": "C#/Syntax Style", - "name": "Syntax Style", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Validity issues", - "name": "Validity issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Formatting", - "name": "Formatting", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SQL", - "name": "SQL" - }, - { - "id": "C#/NUnit", - "name": "NUnit", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Compiler Warnings", - "name": "Compiler Warnings", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Formatting", - "name": "Formatting", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSS", - "name": "CSS" - }, - { - "id": "CSS/Invalid elements", - "name": "Invalid elements", - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "name": "Potentially undesirable code constructs", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Clang Static Analyzer Checks", - "name": "Clang Static Analyzer Checks", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Kubernetes", - "name": "Kubernetes" - }, - { - "id": "C_C++/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Roslyn Analyzers", - "name": "Roslyn Analyzers", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Redundancies in Symbol Declarations", - "name": "Redundancies in Symbol Declarations", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Entity Framework", - "name": "Entity Framework", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Properties files", - "name": "Properties files" - }, - { - "id": "VB.NET", - "name": "VB.NET" - }, - { - "id": "VB.NET/Common Practices and Code Improvements", - "name": "Common Practices and Code Improvements", - "relationships": [ - { - "target": { - "id": "VB.NET", - "index": 39, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Blazor", - "name": "Blazor" - }, - { - "id": "Blazor/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "Blazor", - "index": 41, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XSLT", - "name": "XSLT" - }, - { - "id": "Dockerfile", - "name": "Dockerfile" - }, - { - "id": "XAML/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "XAML", - "index": 4, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "General", - "name": "General" - }, - { - "id": "ASP.NET route templates", - "name": "ASP.NET route templates" - }, - { - "id": "ASP.NET route templates/Code Notification", - "name": "Code Notification", - "relationships": [ - { - "target": { - "id": "ASP.NET route templates", - "index": 47, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "name": "ES2015 migration aids", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Godot", - "name": "Godot", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/DOM issues", - "name": "DOM issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Code Coverage", - "name": "Code Coverage" - }, - { - "id": "HTML/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/TypeScript", - "name": "TypeScript", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XML", - "name": "XML" - }, - { - "id": "C#/Unity Burst Compiler Warnings", - "name": "Unity Burst Compiler Warnings", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExp", - "name": "RegExp" - }, - { - "id": "Angular", - "name": "Angular" - }, - { - "id": "XAML/Compiler Warnings", - "name": "Compiler Warnings", - "relationships": [ - { - "target": { - "id": "XAML", - "index": 4, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "name": "Potentially confusing code constructs", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VB.NET/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "VB.NET", - "index": 39, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Aspx", - "name": "Aspx" - }, - { - "id": "Aspx/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "Aspx", - "index": 63, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Control flow issues", - "name": "Control flow issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OpenAPI specifications", - "name": "OpenAPI specifications" - }, - { - "id": "ResX", - "name": "ResX" - }, - { - "id": "ResX/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "ResX", - "index": 67, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Code quality tools", - "name": "Code quality tools", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "GitHub actions", - "name": "GitHub actions" - }, - { - "id": "Pug_Jade", - "name": "Pug/Jade" - }, - { - "id": "F#", - "name": "F#" - }, - { - "id": "F#/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "F#", - "index": 72, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HTML/Common Practices and Code Improvements", - "name": "Common Practices and Code Improvements", - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Compiler Warnings", - "name": "Compiler Warnings", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Function metrics", - "name": "Function metrics", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XAML/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "XAML", - "index": 4, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSONPath", - "name": "JSONPath" - }, - { - "id": "JavaScript and TypeScript/Code style issues", - "name": "Code style issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Constraints Violations", - "name": "Constraints Violations", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Web.Config", - "name": "Web.Config" - }, - { - "id": "Web.Config/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "Web.Config", - "index": 81, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HTML/Accessibility", - "name": "Accessibility", - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSON and JSON5", - "name": "JSON and JSON5" - }, - { - "id": "XPath", - "name": "XPath" - }, - { - "id": "JavaScript and TypeScript/Probable bugs", - "name": "Probable bugs", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Security", - "name": "Security", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Vue", - "name": "Vue" - }, - { - "id": "MongoJS", - "name": "MongoJS" - }, - { - "id": "Markdown", - "name": "Markdown" - }, - { - "id": "C_C++/Syntax Style", - "name": "Syntax Style", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Razor", - "name": "Razor" - }, - { - "id": "Razor/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "Razor", - "index": 92, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Web.Config/Code Notification", - "name": "Code Notification", - "relationships": [ - { - "target": { - "id": "Web.Config", - "index": 81, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAML", - "name": "YAML" - }, - { - "id": "VB.NET/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "VB.NET", - "index": 39, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Try statement issues", - "name": "Try statement issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Web.Config/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "Web.Config", - "index": 81, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ResX/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "ResX", - "index": 67, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpHandler or WebService", - "name": "HttpHandler or WebService" - }, - { - "id": "HttpHandler or WebService/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "HttpHandler or WebService", - "index": 100, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SQL server", - "name": "SQL server" - }, - { - "id": "JavaScript and TypeScript/Async code and promises", - "name": "Async code and promises", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Naming conventions", - "name": "Naming conventions", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Dependency analysis", - "name": "Dependency analysis" - }, - { - "id": "Inappropriate gRPC request scheme", - "name": "Inappropriate gRPC request scheme" - }, - { - "id": "Razor/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "Razor", - "index": 92, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Assignment issues", - "name": "Assignment issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Switch statement issues", - "name": "Switch statement issues", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VB.NET/Compiler Warnings", - "name": "Compiler Warnings", - "relationships": [ - { - "target": { - "id": "VB.NET", - "index": 39, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Shell script", - "name": "Shell script" - }, - { - "id": "JavaScript and TypeScript/Data flow", - "name": "Data flow", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/UnrealHeaderTool", - "name": "UnrealHeaderTool", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSS/Code style issues", - "name": "Code style issues", - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "T4", - "name": "T4" - }, - { - "id": "T4/T4", - "name": "T4", - "relationships": [ - { - "target": { - "id": "T4", - "index": 115, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Unused symbols", - "name": "Unused symbols", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Flow type checker", - "name": "Flow type checker", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Aspx/Redundancies in Code", - "name": "Redundancies in Code", - "relationships": [ - { - "target": { - "id": "Aspx", - "index": 63, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Imports and dependencies", - "name": "Imports and dependencies", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Less", - "name": "Less" - }, - { - "id": "Proofreading", - "name": "Proofreading" - }, - { - "id": "Oracle", - "name": "Oracle" - }, - { - "id": "Internationalization", - "name": "Internationalization" - }, - { - "id": "T4/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "T4", - "index": 115, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unreal Engine", - "name": "Unreal Engine" - }, - { - "id": "C_C++/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Unity Performance Inspections", - "name": "Unity Performance Inspections", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSS/Code quality tools", - "name": "Code quality tools", - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XAML/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "XAML", - "index": 4, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Security", - "name": "Security" - }, - { - "id": "Aspx/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "Aspx", - "index": 63, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Assembler", - "name": "Assembler" - }, - { - "id": "Assembler/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "Assembler", - "index": 133, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Docker-compose", - "name": "Docker-compose" - }, - { - "id": "RELAX NG", - "name": "RELAX NG" - }, - { - "id": "Web.Config/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "Web.Config", - "index": 81, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/Constraints Violations", - "name": "Constraints Violations", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VB.NET/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "VB.NET", - "index": 39, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Unit testing", - "name": "Unit testing", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Unreal Build System", - "name": "Unreal Build System", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MySQL", - "name": "MySQL" - }, - { - "id": "Angular 2 HTML", - "name": "Angular 2 HTML" - }, - { - "id": "Angular 2 HTML/Potential Code Quality Issues", - "name": "Potential Code Quality Issues", - "relationships": [ - { - "target": { - "id": "Angular 2 HTML", - "index": 143, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C_C++/.NET Core", - "name": ".NET Core", - "relationships": [ - { - "target": { - "id": "C_C++", - "index": 2, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSS/Probable bugs", - "name": "Probable bugs", - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Ini files", - "name": "Ini files" - }, - { - "id": "Version control", - "name": "Version control" - }, - { - "id": "ShaderLab", - "name": "ShaderLab" - }, - { - "id": "ShaderLab/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "ShaderLab", - "index": 149, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Aspx/Common Practices and Code Improvements", - "name": "Common Practices and Code Improvements", - "relationships": [ - { - "target": { - "id": "Aspx", - "index": 63, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PostgreSQL", - "name": "PostgreSQL" - }, - { - "id": "Dev Container", - "name": "Dev Container" - }, - { - "id": "File Watchers", - "name": "File Watchers" - }, - { - "id": "Rider", - "name": "Rider" - }, - { - "id": "Rider/General", - "name": "General", - "relationships": [ - { - "target": { - "id": "Rider", - "index": 155, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XAML/Constraints Violations", - "name": "Constraints Violations", - "relationships": [ - { - "target": { - "id": "XAML", - "index": 4, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/React", - "name": "React", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HTML/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Code Notification", - "name": "Code Notification", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpBase", - "name": "RegExpBase" - }, - { - "id": "RegExpBase/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "RegExpBase", - "index": 161, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAML/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Protocol Buffers", - "name": "Protocol Buffers" - }, - { - "id": "MSBuild", - "name": "MSBuild" - }, - { - "id": "VB.NET/Code Notification", - "name": "Code Notification", - "relationships": [ - { - "target": { - "id": "VB.NET", - "index": 39, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpHandler or WebService/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "HttpHandler or WebService", - "index": 100, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XML/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpBase/Language Usage Opportunities", - "name": "Language Usage Opportunities", - "relationships": [ - { - "target": { - "id": "RegExpBase", - "index": 161, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Handlebars_Mustache", - "name": "Handlebars/Mustache" - }, - { - "id": "F#/Non configurable", - "name": "Non configurable", - "relationships": [ - { - "target": { - "id": "F#", - "index": 72, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JavaScript and TypeScript/Node.js", - "name": "Node.js", - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript", - "index": 14, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "C#/Xunit", - "name": "Xunit", - "relationships": [ - { - "target": { - "id": "C#", - "index": 0, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Qodana", - "name": "Qodana" - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - "extensions": [ - { - "name": "rider.intellij.plugin.appender", - "version": "243.24609", - "rules": [ - { - "id": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "shortDescription": { - "text": "Some values of the enum are not processed inside 'switch' statement and are handled via default section" - }, - "fullDescription": { - "text": "Some values of the enum are not processed inside 'switch' statement and fall into default section. This might indicate unintentional handling of all enum values added after the switch was introduced, consider handling missing enum values explicitly Learn more...", - "markdown": "Some values of the enum are not processed inside 'switch' statement and fall into default section. This might indicate unintentional handling of all enum values added after the switch was introduced, consider handling missing enum values explicitly [Learn more...](https://www.jetbrains.com/help/rider/SwitchStatementHandlesSomeKnownEnumValuesWithDefault.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "SwitchStatementHandlesSomeKnownEnumValuesWithDefault", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14CompatPedantic", - "shortDescription": { - "text": "c++98-c++11-c++14-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-c++11-c++14-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-c++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.InvalidDynamicResourceType", - "shortDescription": { - "text": "XAML dynamic resource of invalid type" - }, - "fullDescription": { - "text": "XAML dynamic resource of invalid type", - "markdown": "XAML dynamic resource of invalid type" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Xaml.InvalidDynamicResourceType", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUEBlueprintImplementableEventNotImplemented", - "shortDescription": { - "text": "BlueprintImplementableEvent function is not implemented in any blueprint" - }, - "fullDescription": { - "text": "BlueprintImplementableEvent function is not implemented in any blueprint", - "markdown": "BlueprintImplementableEvent function is not implemented in any blueprint" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUEBlueprintImplementableEventNotImplemented", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToCompoundAssignment", - "shortDescription": { - "text": "Use compound assignment" - }, - "fullDescription": { - "text": "Replace assignment with compound assignment", - "markdown": "Replace assignment with compound assignment" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToCompoundAssignment", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseConfigureAwaitFalseForAsyncDisposable", - "shortDescription": { - "text": "Missing '.ConfigureAwait(false)' for async disposable in library code" - }, - "fullDescription": { - "text": "It is recommended to use 'ConfigureAwait(false)' in your library code to prevent context capture in task continuations. This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default. Set 'ConfigureAwait analysis mode' project level property to 'Library' to analyze 'await using' statements for missing 'ConfigureAwait(false)' calls.", - "markdown": "It is recommended to use 'ConfigureAwait(false)' in your library code to prevent context capture in task continuations. This inspection is controlled by the 'ConfigureAwait analysis mode' project level property, which is set to 'Disabled' by default. Set 'ConfigureAwait analysis mode' project level property to 'Library' to analyze 'await using' statements for missing 'ConfigureAwait(false)' calls." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseConfigureAwaitFalseForAsyncDisposable", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProTypeReinterpretCast", - "shortDescription": { - "text": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-type-reinterpret-cast clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-type-reinterpret-cast.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProTypeReinterpretCast", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEnumConversion", - "shortDescription": { - "text": "enum-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wenum-conversion clang diagnostic · Learn more", - "markdown": "-Wenum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEnumConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCompareDistinctPointerTypes", - "shortDescription": { - "text": "compare-distinct-pointer-types clang diagnostic" - }, - "fullDescription": { - "text": "-Wcompare-distinct-pointer-types clang diagnostic · Learn more", - "markdown": "-Wcompare-distinct-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompare-distinct-pointer-types)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCompareDistinctPointerTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppAssignedValueIsNeverUsed", - "shortDescription": { - "text": "Assigned value is never used" - }, - "fullDescription": { - "text": "Assigned value is never used", - "markdown": "Assigned value is never used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppAssignedValueIsNeverUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppCVQualifierCanNotBeAppliedToReference", - "shortDescription": { - "text": "Adding cv-qualifiers to references has no effect" - }, - "fullDescription": { - "text": "Adding cv-qualifiers to references has no effect", - "markdown": "Adding cv-qualifiers to references has no effect" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppCVQualifierCanNotBeAppliedToReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBoundToDelegateMethodIsNotMarkedAsUFunction", - "shortDescription": { - "text": "Method bound to delegate is not marked with UFUNCTION macro" - }, - "fullDescription": { - "text": "Method bound to delegate must be marked with UFUNCTION macro", - "markdown": "Method bound to delegate must be marked with UFUNCTION macro" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppBoundToDelegateMethodIsNotMarkedAsUFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneEmptyCatch", - "shortDescription": { - "text": "bugprone-empty-catch clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-empty-catch clang-tidy check · Learn more", - "markdown": "bugprone-empty-catch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/empty-catch.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneEmptyCatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreOpenmp51Compat", - "shortDescription": { - "text": "pre-openmp-51-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-openmp-51-compat clang diagnostic · Learn more", - "markdown": "-Wpre-openmp-51-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-openmp-51-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreOpenmp51Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatiblePointerTypes", - "shortDescription": { - "text": "incompatible-pointer-types clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-pointer-types clang diagnostic · Learn more", - "markdown": "-Wincompatible-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-pointer-types)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatiblePointerTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInitializerOverrides", - "shortDescription": { - "text": "initializer-overrides clang diagnostic" - }, - "fullDescription": { - "text": "-Winitializer-overrides clang diagnostic · Learn more", - "markdown": "-Winitializer-overrides clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winitializer-overrides)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInitializerOverrides", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStdlibcxxNotFound", - "shortDescription": { - "text": "stdlibcxx-not-found clang diagnostic" - }, - "fullDescription": { - "text": "-Wstdlibcxx-not-found clang diagnostic · Learn more", - "markdown": "-Wstdlibcxx-not-found clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstdlibcxx-not-found)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStdlibcxxNotFound", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalUnsignedEnumZeroCompare", - "shortDescription": { - "text": "tautological-unsigned-enum-zero-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-unsigned-enum-zero-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-unsigned-enum-zero-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-unsigned-enum-zero-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalUnsignedEnumZeroCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClassNeedsConstructorBecauseOfUninitializedMember", - "shortDescription": { - "text": "Class should have a user-defined constructor because of an uninitialized data member" - }, - "fullDescription": { - "text": "Class should have a user-defined constructor because of an uninitialized data member", - "markdown": "Class should have a user-defined constructor because of an uninitialized data member" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClassNeedsConstructorBecauseOfUninitializedMember", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTargetClonesMixedSpecifiers", - "shortDescription": { - "text": "target-clones-mixed-specifiers clang diagnostic" - }, - "fullDescription": { - "text": "-Wtarget-clones-mixed-specifiers clang diagnostic · Learn more", - "markdown": "-Wtarget-clones-mixed-specifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtarget-clones-mixed-specifiers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTargetClonesMixedSpecifiers", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftExists", - "shortDescription": { - "text": "microsoft-exists clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-exists clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-exists clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-exists)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftExists", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecAccept", - "shortDescription": { - "text": "android-cloexec-accept clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-accept clang-tidy check · Learn more", - "markdown": "android-cloexec-accept clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-accept.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecAccept", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CoVariantArrayConversion", - "shortDescription": { - "text": "Co-variant array conversion" - }, - "fullDescription": { - "text": "Co-variant conversion of array could cause run-time exceptions Learn more...", - "markdown": "Co-variant conversion of array could cause run-time exceptions [Learn more...](https://www.jetbrains.com/help/rider/CoVariantArrayConversion.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CoVariantArrayConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberCanBeMadeStatic.Global", - "shortDescription": { - "text": "Member can be made static (shared) (non-private accessibility)" - }, - "fullDescription": { - "text": "A non-virtual instance member does not use 'this' object (neither implicitly nor explicitly) and can be made static (shared) Learn more...", - "markdown": "A non-virtual instance member does not use 'this' object (neither implicitly nor explicitly) and can be made static (shared) [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBeMadeStatic.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MemberCanBeMadeStatic.Global", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseElementsView", - "shortDescription": { - "text": "std::views::keys/values can be used" - }, - "fullDescription": { - "text": "For example, when iterating on key-value pairs, std::views::keys allows ignoring the values.", - "markdown": "For example, when iterating on key-value pairs, std::views::keys allows ignoring the values." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseElementsView", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.Entities.SingletonMustBeRequested", - "shortDescription": { - "text": "To use the result of a 'GetSingleton' call in the function, 'OnCreate' must include a 'RequireForUpdate' call" - }, - "fullDescription": { - "text": "To use the result of a 'GetSingleton<{0}>' call in the function, 'OnCreate' must include a 'RequireForUpdate' call", - "markdown": "To use the result of a 'GetSingleton\\<{0}\\>' call in the function, 'OnCreate' must include a 'RequireForUpdate' call" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.Entities.SingletonMustBeRequested", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CollectionNeverUpdated.Global", - "shortDescription": { - "text": "Collection is never updated (non-private accessibility)" - }, - "fullDescription": { - "text": "New elements are never added to the collection Learn more...", - "markdown": "New elements are never added to the collection [Learn more...](https://www.jetbrains.com/help/rider/CollectionNeverUpdated.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CollectionNeverUpdated.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98Cpp11CompatPedantic", - "shortDescription": { - "text": "c++98-c++11-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-c++11-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIgnoredPragmaIntrinsic", - "shortDescription": { - "text": "ignored-pragma-intrinsic clang diagnostic" - }, - "fullDescription": { - "text": "-Wignored-pragma-intrinsic clang diagnostic · Learn more", - "markdown": "-Wignored-pragma-intrinsic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-pragma-intrinsic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIgnoredPragmaIntrinsic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeModifiersOrder", - "shortDescription": { - "text": "Adjust modifiers declaration order" - }, - "fullDescription": { - "text": "The order of declaration modifiers does not match code style settings Learn more...", - "markdown": "The order of declaration modifiers does not match code style settings [Learn more...](https://www.jetbrains.com/help/rider/ArrangeModifiersOrder.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeModifiersOrder", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.UnknownLayer", - "shortDescription": { - "text": "The layer is not defined in the 'Tags & Layers'" - }, - "fullDescription": { - "text": "The layer is not defined in the 'Tags & Layers'. The call is likely to fail at runtime.", - "markdown": "The layer is not defined in the 'Tags \\& Layers'. The call is likely to fail at runtime." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.UnknownLayer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantDelegateCreation", - "shortDescription": { - "text": "Explicit delegate creation expression is redundant" - }, - "fullDescription": { - "text": "Explicit delegate creation expression is redundant Learn more...", - "markdown": "Explicit delegate creation expression is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantDelegateCreation.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantDelegateCreation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadSemicolonSpaces", - "shortDescription": { - "text": "Incorrect spacing (around semicolon)" - }, - "fullDescription": { - "text": "Around semicolon Learn more...", - "markdown": "Around semicolon [Learn more...](https://www.jetbrains.com/help/rider/BadSemicolonSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadSemicolonSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVarargs", - "shortDescription": { - "text": "varargs clang diagnostic" - }, - "fullDescription": { - "text": "-Wvarargs clang diagnostic · Learn more", - "markdown": "-Wvarargs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvarargs)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVarargs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.IncorrectScriptableObjectInstantiation", - "shortDescription": { - "text": "'ScriptableObject' instances must be instantiated with 'ScriptableObject.CreateInstance()' instead of 'new'" - }, - "fullDescription": { - "text": "Using 'new' to instantiate a class derived from 'ScriptableObject' means that Unity will not call any event functions. Create a new instance using 'GameObject.AddComponent()'. Learn more...", - "markdown": "Using 'new' to instantiate a class derived from 'ScriptableObject' means that Unity will not call any event functions. Create a new instance using 'GameObject.AddComponent()'. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/ScriptableObjects-must-be-instantiated-with-ScriptableObject.CreateInstance-instead-of-new)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.IncorrectScriptableObjectInstantiation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatTruncation", - "shortDescription": { - "text": "format-truncation clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-truncation clang diagnostic · Learn more", - "markdown": "-Wformat-truncation clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-truncation)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatTruncation", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppFunctionDoesntReturnValue", - "shortDescription": { - "text": "No return statement in a function or a lambda returning non-void" - }, - "fullDescription": { - "text": "No return statement in a function or a lambda with non-void return type", - "markdown": "No return statement in a function or a lambda with non-void return type" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppFunctionDoesntReturnValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPointerArith", - "shortDescription": { - "text": "pointer-arith clang diagnostic" - }, - "fullDescription": { - "text": "-Wpointer-arith clang diagnostic · Learn more", - "markdown": "-Wpointer-arith clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-arith)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPointerArith", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMaxUnsignedZero", - "shortDescription": { - "text": "max-unsigned-zero clang diagnostic" - }, - "fullDescription": { - "text": "-Wmax-unsigned-zero clang diagnostic · Learn more", - "markdown": "-Wmax-unsigned-zero clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmax-unsigned-zero)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMaxUnsignedZero", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeReplaceRandomShuffle", - "shortDescription": { - "text": "modernize-replace-random-shuffle clang-tidy check" - }, - "fullDescription": { - "text": "modernize-replace-random-shuffle clang-tidy check · Learn more", - "markdown": "modernize-replace-random-shuffle clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/replace-random-shuffle.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeReplaceRandomShuffle", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSpirvCompat", - "shortDescription": { - "text": "spirv-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wspirv-compat clang diagnostic · Learn more", - "markdown": "-Wspirv-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wspirv-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSpirvCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CompareNonConstrainedGenericWithNull", - "shortDescription": { - "text": "Possible comparison of value type with 'null'" - }, - "fullDescription": { - "text": "Generic type has no value or class constraint, the condition could be always 'false' Learn more...", - "markdown": "Generic type has no value or class constraint, the condition could be always 'false' [Learn more...](https://www.jetbrains.com/help/rider/CompareNonConstrainedGenericWithNull.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CompareNonConstrainedGenericWithNull", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.ImplicitUnspecifiedNullValues", - "shortDescription": { - "text": "NUnit. Implicitly unspecified null values." - }, - "fullDescription": { - "text": "NUnit. No enough values are provided in the Values attribute so NUnit implicitly adds 'null' values to fill test data. Learn more...", - "markdown": "NUnit. No enough values are provided in the Values attribute so NUnit implicitly adds 'null' values to fill test data. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.ImplicitUnspecifiedNullValues.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.ImplicitUnspecifiedNullValues", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppFunctionResultShouldBeUsed", - "shortDescription": { - "text": "Function result should be used" - }, - "fullDescription": { - "text": "Function returns a value of a type that should be handled at the call site", - "markdown": "Function returns a value of a type that should be handled at the call site" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppFunctionResultShouldBeUsed", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDanglingAssignmentGsl", - "shortDescription": { - "text": "dangling-assignment-gsl clang diagnostic" - }, - "fullDescription": { - "text": "-Wdangling-assignment-gsl clang diagnostic · Learn more", - "markdown": "-Wdangling-assignment-gsl clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling-assignment-gsl)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDanglingAssignmentGsl", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDoxygenUndocumentedParameter", - "shortDescription": { - "text": "Missing function parameter description in a documentation comment" - }, - "fullDescription": { - "text": "Missing function parameter description in a documentation comment", - "markdown": "Missing function parameter description in a documentation comment" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppDoxygenUndocumentedParameter", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS4014", - "shortDescription": { - "text": "Async method invocation without await expression" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/hh873131.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS4014", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadSwitchBracesIndent", - "shortDescription": { - "text": "Incorrect indent (around switch statement)" - }, - "fullDescription": { - "text": "Around switch statement", - "markdown": "Around switch statement" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadSwitchBracesIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticImplicitConstIntFloatConversion", - "shortDescription": { - "text": "implicit-const-int-float-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wimplicit-const-int-float-conversion clang diagnostic · Learn more", - "markdown": "-Wimplicit-const-int-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wimplicit-const-int-float-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticImplicitConstIntFloatConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleExplicitConstructor", - "shortDescription": { - "text": "google-explicit-constructor clang-tidy check" - }, - "fullDescription": { - "text": "google-explicit-constructor clang-tidy check · Learn more", - "markdown": "google-explicit-constructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/explicit-constructor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleExplicitConstructor", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShadowUncapturedLocal", - "shortDescription": { - "text": "shadow-uncaptured-local clang diagnostic" - }, - "fullDescription": { - "text": "-Wshadow-uncaptured-local clang diagnostic · Learn more", - "markdown": "-Wshadow-uncaptured-local clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-uncaptured-local)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShadowUncapturedLocal", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusSmartPtrModeling", - "shortDescription": { - "text": "cplusplus.SmartPtrModeling clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.SmartPtrModeling clang static analyzer check · Learn more", - "markdown": "cplusplus.SmartPtrModeling clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusSmartPtrModeling", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuComplexInteger", - "shortDescription": { - "text": "gnu-complex-integer clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-complex-integer clang diagnostic · Learn more", - "markdown": "-Wgnu-complex-integer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-complex-integer)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuComplexInteger", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Single.1", - "shortDescription": { - "text": "Replace with OfType().Single()" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Single($y$ => $y$ != null)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Single($y$ =\\> $y$ != null)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Single.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Single.2", - "shortDescription": { - "text": "Replace with OfType().Single() (replace with OfType().Single(..))" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Single($y$ => $y$ != null && $expr$)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Single($y$ =\\> $y$ != null \\&\\& $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Single.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilTimeSubtraction", - "shortDescription": { - "text": "abseil-time-subtraction clang-tidy check" - }, - "fullDescription": { - "text": "abseil-time-subtraction clang-tidy check · Learn more", - "markdown": "abseil-time-subtraction clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/time-subtraction.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilTimeSubtraction", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeallocInCategory", - "shortDescription": { - "text": "dealloc-in-category clang diagnostic" - }, - "fullDescription": { - "text": "-Wdealloc-in-category clang diagnostic · Learn more", - "markdown": "-Wdealloc-in-category clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdealloc-in-category)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeallocInCategory", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp20Compat", - "shortDescription": { - "text": "c++20-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++20-compat clang diagnostic · Learn more", - "markdown": "-Wc++20-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp20Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeleteIncomplete", - "shortDescription": { - "text": "delete-incomplete clang diagnostic" - }, - "fullDescription": { - "text": "-Wdelete-incomplete clang diagnostic · Learn more", - "markdown": "-Wdelete-incomplete clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelete-incomplete)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeleteIncomplete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticThreadSafetyAnalysis", - "shortDescription": { - "text": "thread-safety-analysis clang diagnostic" - }, - "fullDescription": { - "text": "-Wthread-safety-analysis clang diagnostic · Learn more", - "markdown": "-Wthread-safety-analysis clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wthread-safety-analysis)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticThreadSafetyAnalysis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscNoRecursion", - "shortDescription": { - "text": "misc-no-recursion clang-tidy check" - }, - "fullDescription": { - "text": "misc-no-recursion clang-tidy check · Learn more", - "markdown": "misc-no-recursion clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/no-recursion.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscNoRecursion", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EventUnsubscriptionViaAnonymousDelegate", - "shortDescription": { - "text": "Event unsubscription via anonymous delegate" - }, - "fullDescription": { - "text": "Event unsubscription via anonymous delegate is meaningless", - "markdown": "Event unsubscription via anonymous delegate is meaningless" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EventUnsubscriptionViaAnonymousDelegate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantConstSpecifier", - "shortDescription": { - "text": "Redundant 'const' specifier" - }, - "fullDescription": { - "text": "The 'const' specifier on a variable definition is redundant", - "markdown": "The 'const' specifier on a variable definition is redundant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantConstSpecifier", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3147", - "shortDescription": { - "text": "RoslynAnalyzers Mark Verb Handlers With Validate Antiforgery Token" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA3147", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseNullableAnnotationInsteadOfAttribute", - "shortDescription": { - "text": "Use nullable annotation instead of an attribute" - }, - "fullDescription": { - "text": "An attribute is used to declare the nullability of a type. Nullable reference types' annotations might be used instead.", - "markdown": "An attribute is used to declare the nullability of a type. Nullable reference types' annotations might be used instead." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseNullableAnnotationInsteadOfAttribute", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1091FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty region" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1091FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp14CompatPedantic", - "shortDescription": { - "text": "c++14-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++14-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-14-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp14CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMissingIncludeGuard", - "shortDescription": { - "text": "Missing include guard" - }, - "fullDescription": { - "text": "Include guard is not found at the beginning of a header file Learn more...", - "markdown": "Include guard is not found at the beginning of a header file [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-guards)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMissingIncludeGuard", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedTupleComponentInReturnValue", - "shortDescription": { - "text": "Component of the tuple is never used" - }, - "fullDescription": { - "text": "Component of the tuple is never used", - "markdown": "Component of the tuple is never used" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedTupleComponentInReturnValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMacroRedefined", - "shortDescription": { - "text": "macro-redefined clang diagnostic" - }, - "fullDescription": { - "text": "-Wmacro-redefined clang diagnostic · Learn more", - "markdown": "-Wmacro-redefined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmacro-redefined)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMacroRedefined", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRetainedLanguageLinkage", - "shortDescription": { - "text": "retained-language-linkage clang diagnostic" - }, - "fullDescription": { - "text": "-Wretained-language-linkage clang diagnostic · Learn more", - "markdown": "-Wretained-language-linkage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wretained-language-linkage)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRetainedLanguageLinkage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EntityFramework.UnsupportedServerSideFunctionCall", - "shortDescription": { - "text": "Function is not convertible to SQL and must not be called in the database context" - }, - "fullDescription": { - "text": "Reports methods that are not convertible to SQL and will produce runtime exceptions when called in database contexts Learn more...", - "markdown": "Reports methods that are not convertible to SQL and will produce runtime exceptions when called in database contexts [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.UnsupportedServerSideFunctionCall.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EntityFramework.UnsupportedServerSideFunctionCall", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Entity Framework", - "index": 37, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticKeywordMacro", - "shortDescription": { - "text": "keyword-macro clang diagnostic" - }, - "fullDescription": { - "text": "-Wkeyword-macro clang diagnostic · Learn more", - "markdown": "-Wkeyword-macro clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wkeyword-macro)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticKeywordMacro", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityUseAnyofallof", - "shortDescription": { - "text": "readability-use-anyofallof clang-tidy check" - }, - "fullDescription": { - "text": "readability-use-anyofallof clang-tidy check · Learn more", - "markdown": "readability-use-anyofallof clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/use-anyofallof.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityUseAnyofallof", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReadonlyIboutletProperty", - "shortDescription": { - "text": "readonly-iboutlet-property clang diagnostic" - }, - "fullDescription": { - "text": "-Wreadonly-iboutlet-property clang diagnostic · Learn more", - "markdown": "-Wreadonly-iboutlet-property clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreadonly-iboutlet-property)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReadonlyIboutletProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1311", - "shortDescription": { - "text": "RoslynAnalyzers Specify a culture or use an invariant version" - }, - "fullDescription": { - "text": "Specify culture to help avoid accidental implicit dependency on current culture. Using an invariant version yields consistent results regardless of the culture of an application.", - "markdown": "Specify culture to help avoid accidental implicit dependency on current culture. Using an invariant version yields consistent results regardless of the culture of an application." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1311", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1310", - "shortDescription": { - "text": "RoslynAnalyzers Specify StringComparison for correctness" - }, - "fullDescription": { - "text": "A string comparison operation uses a method overload that does not set a StringComparison parameter, hence its behavior could vary based on the current user's locale settings. It is strongly recommended to use the overload with StringComparison parameter for correctness and clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'.", - "markdown": "A string comparison operation uses a method overload that does not set a StringComparison parameter, hence its behavior could vary based on the current user's locale settings. It is strongly recommended to use the overload with StringComparison parameter for correctness and clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1310", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGccCompat", - "shortDescription": { - "text": "gcc-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wgcc-compat clang diagnostic · Learn more", - "markdown": "-Wgcc-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgcc-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGccCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDeprecatedRegisterStorageClassSpecifier", - "shortDescription": { - "text": "Deprecated 'register' storage class specifier" - }, - "fullDescription": { - "text": "The 'register' storage class specifier is deprecated in C++11 and removed in C++17", - "markdown": "The 'register' storage class specifier is deprecated in C++11 and removed in C++17" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDeprecatedRegisterStorageClassSpecifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMemsizeComparison", - "shortDescription": { - "text": "memsize-comparison clang diagnostic" - }, - "fullDescription": { - "text": "-Wmemsize-comparison clang diagnostic · Learn more", - "markdown": "-Wmemsize-comparison clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmemsize-comparison)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMemsizeComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseNegatedPatternInIsExpression", - "shortDescription": { - "text": "Convert negated 'is' expression into 'is' expression with negated pattern" - }, - "fullDescription": { - "text": "Replace unary negation operator '!' before 'is' expression with C# 9.0 negated pattern", - "markdown": "Replace unary negation operator '!' before 'is' expression with C# 9.0 negated pattern" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseNegatedPatternInIsExpression", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppAvoidCArrays", - "shortDescription": { - "text": "hicpp-avoid-c-arrays clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-avoid-c-arrays clang-tidy check · Learn more", - "markdown": "hicpp-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/avoid-c-arrays.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppAvoidCArrays", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleCallToLast", - "shortDescription": { - "text": "Replace with single call to Last(..)" - }, - "fullDescription": { - "text": "$seq$.Where(Function ($x$) $expr$).Last()", - "markdown": "$seq$.Where(Function ($x$) $expr$).Last()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleCallToLast", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesNoexceptMoveOperations", - "shortDescription": { - "text": "cppcoreguidelines-noexcept-move-operations clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-noexcept-move-operations clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-noexcept-move-operations clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-move-operations.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesNoexceptMoveOperations", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Blazor.EditorRequired", - "shortDescription": { - "text": "Missed value for required attribute" - }, - "fullDescription": { - "text": "Missed value for required attribute", - "markdown": "Missed value for required attribute" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Blazor.EditorRequired", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Blazor/Potential Code Quality Issues", - "index": 42, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeWithSuspiciousEqualityIsUsedInRecord.Local", - "shortDescription": { - "text": "Type with suspicious equality is used in a record (private accessibility)" - }, - "fullDescription": { - "text": "Type with suspicious equality is used as a member of a record type. This inspection only triggers when the record type is actually used for equality comparisons in the solution. Learn more...", - "markdown": "Type with suspicious equality is used as a member of a record type. This inspection only triggers when the record type is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/TypeWithSuspiciousEqualityIsUsedInRecord.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "TypeWithSuspiciousEqualityIsUsedInRecord.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBackslashNewlineEscape", - "shortDescription": { - "text": "backslash-newline-escape clang diagnostic" - }, - "fullDescription": { - "text": "-Wbackslash-newline-escape clang diagnostic · Learn more", - "markdown": "-Wbackslash-newline-escape clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbackslash-newline-escape)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBackslashNewlineEscape", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1309", - "shortDescription": { - "text": "RoslynAnalyzers Use ordinal string comparison" - }, - "fullDescription": { - "text": "A string comparison operation that is nonlinguistic does not set the StringComparison parameter to either Ordinal or OrdinalIgnoreCase. By explicitly setting the parameter to either StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase, your code often gains speed, becomes more correct, and becomes more reliable.", - "markdown": "A string comparison operation that is nonlinguistic does not set the StringComparison parameter to either Ordinal or OrdinalIgnoreCase. By explicitly setting the parameter to either StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase, your code often gains speed, becomes more correct, and becomes more reliable." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1309", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1308", - "shortDescription": { - "text": "RoslynAnalyzers Normalize strings to uppercase" - }, - "fullDescription": { - "text": "Strings should be normalized to uppercase. A small group of characters cannot make a round trip when they are converted to lowercase. To make a round trip means to convert the characters from one locale to another locale that represents character data differently, and then to accurately retrieve the original characters from the converted characters.", - "markdown": "Strings should be normalized to uppercase. A small group of characters cannot make a round trip when they are converted to lowercase. To make a round trip means to convert the characters from one locale to another locale that represents character data differently, and then to accurately retrieve the original characters from the converted characters." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1308", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1307", - "shortDescription": { - "text": "RoslynAnalyzers Specify StringComparison for clarity" - }, - "fullDescription": { - "text": "A string comparison operation uses a method overload that does not set a StringComparison parameter. It is recommended to use the overload with StringComparison parameter for clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'.", - "markdown": "A string comparison operation uses a method overload that does not set a StringComparison parameter. It is recommended to use the overload with StringComparison parameter for clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1307", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSizeofExpression", - "shortDescription": { - "text": "bugprone-sizeof-expression clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-sizeof-expression clang-tidy check · Learn more", - "markdown": "bugprone-sizeof-expression clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/sizeof-expression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSizeofExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1305", - "shortDescription": { - "text": "RoslynAnalyzers Specify IFormatProvider" - }, - "fullDescription": { - "text": "A method or constructor calls one or more members that have overloads that accept a System.IFormatProvider parameter, and the method or constructor does not call the overload that takes the IFormatProvider parameter. When a System.Globalization.CultureInfo or IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be based on the input from/output displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider'. Otherwise, if the result will be stored and accessed by software, such as when it is loaded from disk/database and when it is persisted to disk/database, specify 'CultureInfo.InvariantCulture'.", - "markdown": "A method or constructor calls one or more members that have overloads that accept a System.IFormatProvider parameter, and the method or constructor does not call the overload that takes the IFormatProvider parameter. When a System.Globalization.CultureInfo or IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be based on the input from/output displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider'. Otherwise, if the result will be stored and accessed by software, such as when it is loaded from disk/database and when it is persisted to disk/database, specify 'CultureInfo.InvariantCulture'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1305", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1304", - "shortDescription": { - "text": "RoslynAnalyzers Specify CultureInfo" - }, - "fullDescription": { - "text": "A method or constructor calls a member that has an overload that accepts a System.Globalization.CultureInfo parameter, and the method or constructor does not call the overload that takes the CultureInfo parameter. When a CultureInfo or System.IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'CultureInfo' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'.", - "markdown": "A method or constructor calls a member that has an overload that accepts a System.Globalization.CultureInfo parameter, and the method or constructor does not call the overload that takes the CultureInfo parameter. When a CultureInfo or System.IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'CultureInfo' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo.InvariantCulture'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1304", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1303", - "shortDescription": { - "text": "RoslynAnalyzers Do not pass literals as localized parameters" - }, - "fullDescription": { - "text": "A method passes a string literal as a parameter to a constructor or method in the .NET Framework class library and that string should be localizable. To fix a violation of this rule, replace the string literal with a string retrieved through an instance of the ResourceManager class.", - "markdown": "A method passes a string literal as a parameter to a constructor or method in the .NET Framework class library and that string should be localizable. To fix a violation of this rule, replace the string literal with a string retrieved through an instance of the ResourceManager class." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA1303", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.TestCaseSourceShouldImplementIEnumerable", - "shortDescription": { - "text": "NUnit. Test case source must be non-abstract and implement IEnumerable." - }, - "fullDescription": { - "text": "NUnit. Test case source must refer to non-abstract class implementing IEnumerable. Learn more...", - "markdown": "NUnit. Test case source must refer to non-abstract class implementing IEnumerable. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.TestCaseSourceShouldImplementIEnumerable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.TestCaseSourceShouldImplementIEnumerable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CollectionNeverUpdated.Local", - "shortDescription": { - "text": "Collection is never updated (private accessibility)" - }, - "fullDescription": { - "text": "New elements are never added to the collection Learn more...", - "markdown": "New elements are never added to the collection [Learn more...](https://www.jetbrains.com/help/rider/CollectionNeverUpdated.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CollectionNeverUpdated.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOpenmp51Extensions", - "shortDescription": { - "text": "openmp-51-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wopenmp-51-extensions clang diagnostic · Learn more", - "markdown": "-Wopenmp-51-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wopenmp-51-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOpenmp51Extensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadColonSpaces", - "shortDescription": { - "text": "Incorrect spacing (around colon)" - }, - "fullDescription": { - "text": "Around colon", - "markdown": "Around colon" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadColonSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MergeNestedPropertyPatterns", - "shortDescription": { - "text": "Merge nested property patterns" - }, - "fullDescription": { - "text": "Simplify nested member access in a pattern by using the C# 10 extended property patterns syntax Learn more...", - "markdown": "Simplify nested member access in a pattern by using the C# 10 extended property patterns syntax [Learn more...](https://www.jetbrains.com/help/rider/MergeNestedPropertyPatterns.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MergeNestedPropertyPatterns", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1217FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Convert interpolated string to concatenation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1217FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStrictPrototypes", - "shortDescription": { - "text": "strict-prototypes clang diagnostic" - }, - "fullDescription": { - "text": "-Wstrict-prototypes clang diagnostic · Learn more", - "markdown": "-Wstrict-prototypes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrict-prototypes)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStrictPrototypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.XKeyAttributeDisallowed", - "shortDescription": { - "text": "x:Key is allowed for resources and dictionary elements only" - }, - "fullDescription": { - "text": "x:Key is allowed for resources and dictionary elements only", - "markdown": "x:Key is allowed for resources and dictionary elements only" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.XKeyAttributeDisallowed", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PatternIsRedundant", - "shortDescription": { - "text": "The pattern is redundant, it does not produce any runtime checks" - }, - "fullDescription": { - "text": "The pattern is redundant because it does not produce any actual checks at runtime. This usually indicates an error in the pattern matching condition. Learn more...", - "markdown": "The pattern is redundant because it does not produce any actual checks at runtime. This usually indicates an error in the pattern matching condition. [Learn more...](https://www.jetbrains.com/help/rider/PatternIsRedundant.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PatternIsRedundant", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesMissingStdForward", - "shortDescription": { - "text": "cppcoreguidelines-missing-std-forward clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-missing-std-forward clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-missing-std-forward clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/missing-std-forward.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesMissingStdForward", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JoinNullCheckWithUsage", - "shortDescription": { - "text": "Join null check with assignment" - }, - "fullDescription": { - "text": "Replaces if statement with code using ?? operator and throw expression Learn more...", - "markdown": "Replaces if statement with code using ?? operator and throw expression [Learn more...](https://www.jetbrains.com/help/rider/JoinNullCheckWithUsage.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JoinNullCheckWithUsage", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSingleBitBitfieldConstantConversion", - "shortDescription": { - "text": "single-bit-bitfield-constant-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wsingle-bit-bitfield-constant-conversion clang diagnostic · Learn more", - "markdown": "-Wsingle-bit-bitfield-constant-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsingle-bit-bitfield-constant-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSingleBitBitfieldConstantConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReceiverExpr", - "shortDescription": { - "text": "receiver-expr clang diagnostic" - }, - "fullDescription": { - "text": "-Wreceiver-expr clang diagnostic · Learn more", - "markdown": "-Wreceiver-expr clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreceiver-expr)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReceiverExpr", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseDesignatedInitializers", - "shortDescription": { - "text": "modernize-use-designated-initializers clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-designated-initializers clang-tidy check · Learn more", - "markdown": "modernize-use-designated-initializers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-designated-initializers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseDesignatedInitializers", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1574,CS1584,CS1581,CS1580", - "shortDescription": { - "text": "Cannot resolve reference in XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://www.jetbrains.com/help/rider/CSharpWarnings_CS1574_CS1584_CS1581_CS1580.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1574,CS1584,CS1581,CS1580", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.LoadSceneUnexistingScene", - "shortDescription": { - "text": "Scene does not exist" - }, - "fullDescription": { - "text": "There is no scene with the same name in the project.", - "markdown": "There is no scene with the same name in the project." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.LoadSceneUnexistingScene", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8425", - "shortDescription": { - "text": "Async-iterator has one or more parameters of type 'CancellationToken' but none of them is annotated with the 'EnumeratorCancellation' attribute." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8425", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8424", - "shortDescription": { - "text": "The 'EnumeratorCancellation' attribute is only effective on a parameter of type 'CancellationToken' in an async-iterator method returning 'IAsyncEnumerable<>'." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8424", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsafeBufferUsage", - "shortDescription": { - "text": "unsafe-buffer-usage clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsafe-buffer-usage clang diagnostic · Learn more", - "markdown": "-Wunsafe-buffer-usage clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsafe-buffer-usage)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsafeBufferUsage", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDeletingVoidPointer", - "shortDescription": { - "text": "Deleting a void pointer" - }, - "fullDescription": { - "text": "Deleting a void pointer is undefined behavior", - "markdown": "Deleting a void pointer is undefined behavior" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDeletingVoidPointer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStrictSelectorMatch", - "shortDescription": { - "text": "strict-selector-match clang diagnostic" - }, - "fullDescription": { - "text": "-Wstrict-selector-match clang diagnostic · Learn more", - "markdown": "-Wstrict-selector-match clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrict-selector-match)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStrictSelectorMatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusArrayDelete", - "shortDescription": { - "text": "cplusplus.ArrayDelete clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.ArrayDelete clang static analyzer check · Learn more", - "markdown": "cplusplus.ArrayDelete clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusArrayDelete", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullableToNonnullConversion", - "shortDescription": { - "text": "nullable-to-nonnull-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wnullable-to-nonnull-conversion clang diagnostic · Learn more", - "markdown": "-Wnullable-to-nonnull-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnullable-to-nonnull-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullableToNonnullConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.ParameterConstraintCanBeSpecified", - "shortDescription": { - "text": "Route parameter constraint can be added due to type of method argument" - }, - "fullDescription": { - "text": "Route parameter constraint can be added due to type of method argument", - "markdown": "Route parameter constraint can be added due to type of method argument" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RouteTemplates.ParameterConstraintCanBeSpecified", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftCommentPaste", - "shortDescription": { - "text": "microsoft-comment-paste clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-comment-paste clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-comment-paste clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-comment-paste)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftCommentPaste", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppThrowExpressionCanBeReplacedWithRethrow", - "shortDescription": { - "text": "Throw expression can be replaced with a rethrow expression" - }, - "fullDescription": { - "text": "Throw expression can be replaced with a rethrow expression", - "markdown": "Throw expression can be replaced with a rethrow expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppThrowExpressionCanBeReplacedWithRethrow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Godot.MissingParameterlessConstructor", - "shortDescription": { - "text": "Parameterless constructor required" - }, - "fullDescription": { - "text": "Consider adding a parameterless constructor for the GodotEngine to initialize a script/game object", - "markdown": "Consider adding a parameterless constructor for the GodotEngine to initialize a script/game object" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Godot.MissingParameterlessConstructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Godot", - "index": 50, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.XamlMismatchedDeviceFamilyViewClrNameHighlighting", - "shortDescription": { - "text": "DeviceFamily-specific view type name does not match generic type name" - }, - "fullDescription": { - "text": "DeviceFamily-specific view type name does not match generic type name", - "markdown": "DeviceFamily-specific view type name does not match generic type name" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.XamlMismatchedDeviceFamilyViewClrNameHighlighting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Compat", - "shortDescription": { - "text": "c++98-c++11-c++14-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-c++11-c++14-compat clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-c++14-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-c-14-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Cpp14Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1031FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary braces in switch section" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1031FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneChainedComparison", - "shortDescription": { - "text": "bugprone-chained-comparison clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-chained-comparison clang-tidy check · Learn more", - "markdown": "bugprone-chained-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/chained-comparison.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneChainedComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSwitchMissingDefaultCase", - "shortDescription": { - "text": "bugprone-switch-missing-default-case clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-switch-missing-default-case clang-tidy check · Learn more", - "markdown": "bugprone-switch-missing-default-case clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/switch-missing-default-case.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSwitchMissingDefaultCase", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp14CompatPedantic", - "shortDescription": { - "text": "pre-c++14-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++14-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++14-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-14-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp14CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AsmDefWarnings", - "shortDescription": { - "text": "AsmDef Warnings" - }, - "fullDescription": { - "text": "AsmDef Warnings", - "markdown": "AsmDef Warnings" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AsmDefWarnings", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Non configurable", - "index": 52, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedCopyWithUserProvidedCopy", - "shortDescription": { - "text": "deprecated-copy-with-user-provided-copy clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-copy-with-user-provided-copy clang diagnostic · Learn more", - "markdown": "-Wdeprecated-copy-with-user-provided-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy-with-user-provided-copy)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopyWithUserProvidedCopy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRangeBasedForIncompatibleReference", - "shortDescription": { - "text": "Possibly unintended incompatible reference type in range declaration" - }, - "fullDescription": { - "text": "Using an incompatible reference type in the range declaration is likely to cause unwanted object copying", - "markdown": "Using an incompatible reference type in the range declaration is likely to cause unwanted object copying" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppRangeBasedForIncompatibleReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAtomicAccess", - "shortDescription": { - "text": "atomic-access clang diagnostic" - }, - "fullDescription": { - "text": "-Watomic-access clang diagnostic · Learn more", - "markdown": "-Watomic-access clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-access)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAtomicAccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalTypeLimitCompare", - "shortDescription": { - "text": "tautological-type-limit-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-type-limit-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-type-limit-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-type-limit-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalTypeLimitCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertCon36C", - "shortDescription": { - "text": "cert-con36-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-con36-c clang-tidy check · Learn more", - "markdown": "cert-con36-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/con36-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertCon36C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftUnionMemberReference", - "shortDescription": { - "text": "microsoft-union-member-reference clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-union-member-reference clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-union-member-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-union-member-reference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftUnionMemberReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToLocalFunction", - "shortDescription": { - "text": "Convert delegate variable into local function" - }, - "fullDescription": { - "text": "Replace delegate variable with local function Learn more...", - "markdown": "Replace delegate variable with local function [Learn more...](https://www.jetbrains.com/help/rider/ConvertToLocalFunction.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToLocalFunction", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonModularIncludeInModule", - "shortDescription": { - "text": "non-modular-include-in-module clang diagnostic" - }, - "fullDescription": { - "text": "-Wnon-modular-include-in-module clang diagnostic · Learn more", - "markdown": "-Wnon-modular-include-in-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-modular-include-in-module)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonModularIncludeInModule", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceNoexceptDestructor", - "shortDescription": { - "text": "performance-noexcept-destructor clang-tidy check" - }, - "fullDescription": { - "text": "performance-noexcept-destructor clang-tidy check · Learn more", - "markdown": "performance-noexcept-destructor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/noexcept-destructor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceNoexceptDestructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatibleMsStruct", - "shortDescription": { - "text": "incompatible-ms-struct clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-ms-struct clang diagnostic · Learn more", - "markdown": "-Wincompatible-ms-struct clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-ms-struct)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleMsStruct", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppNoArrayDecay", - "shortDescription": { - "text": "hicpp-no-array-decay clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-no-array-decay clang-tidy check · Learn more", - "markdown": "hicpp-no-array-decay clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/no-array-decay.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppNoArrayDecay", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxNSOrCFErrorDerefChecker", - "shortDescription": { - "text": "osx.NSOrCFErrorDerefChecker clang static analyzer check" - }, - "fullDescription": { - "text": "osx.NSOrCFErrorDerefChecker clang static analyzer check · Learn more", - "markdown": "osx.NSOrCFErrorDerefChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxNSOrCFErrorDerefChecker", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPointerIntegerCompare", - "shortDescription": { - "text": "pointer-integer-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wpointer-integer-compare clang diagnostic · Learn more", - "markdown": "-Wpointer-integer-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpointer-integer-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPointerIntegerCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMissingIndent", - "shortDescription": { - "text": "Incorrect indent (missing indent/outdent elsewhere)" - }, - "fullDescription": { - "text": "Missing indent/outdent elsewhere", - "markdown": "Missing indent/outdent elsewhere" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppMissingIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypesStrict", - "shortDescription": { - "text": "incompatible-function-pointer-types-strict clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-function-pointer-types-strict clang diagnostic · Learn more", - "markdown": "-Wincompatible-function-pointer-types-strict clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-function-pointer-types-strict)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypesStrict", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.AttributeValueNotResolved", - "shortDescription": { - "text": "Unknown attribute value" - }, - "fullDescription": { - "text": "Unknown attribute value in HTML and related technologies", - "markdown": "Unknown attribute value in HTML and related technologies" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.AttributeValueNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPrintfExtraArg", - "shortDescription": { - "text": "Too many arguments in a call to printf" - }, - "fullDescription": { - "text": "Too many arguments in a call to printf. Some of the arguments are not used.", - "markdown": "Too many arguments in a call to printf. Some of the arguments are not used." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPrintfExtraArg", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityElseAfterReturn", - "shortDescription": { - "text": "readability-else-after-return clang-tidy check" - }, - "fullDescription": { - "text": "readability-else-after-return clang-tidy check · Learn more", - "markdown": "readability-else-after-return clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/else-after-return.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityElseAfterReturn", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPragmaClangAttribute", - "shortDescription": { - "text": "pragma-clang-attribute clang diagnostic" - }, - "fullDescription": { - "text": "-Wpragma-clang-attribute clang diagnostic · Learn more", - "markdown": "-Wpragma-clang-attribute clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-clang-attribute)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPragmaClangAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesProBoundsPointerArithmetic", - "shortDescription": { - "text": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-pro-bounds-pointer-arithmetic clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/pro-bounds-pointer-arithmetic.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesProBoundsPointerArithmetic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExternInitializer", - "shortDescription": { - "text": "extern-initializer clang diagnostic" - }, - "fullDescription": { - "text": "-Wextern-initializer clang diagnostic · Learn more", - "markdown": "-Wextern-initializer clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextern-initializer)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExternInitializer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesAvoidMagicNumbers", - "shortDescription": { - "text": "cppcoreguidelines-avoid-magic-numbers clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-avoid-magic-numbers clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-magic-numbers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-magic-numbers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidMagicNumbers", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BaseObjectGetHashCodeCallInGetHashCode", - "shortDescription": { - "text": "Overridden GetHashCode calls base 'Object.GetHashCode()'" - }, - "fullDescription": { - "text": "Overridden GetHashCode calls base 'Object.GetHashCode()' Learn more...", - "markdown": "Overridden GetHashCode calls base 'Object.GetHashCode()' [Learn more...](https://www.jetbrains.com/help/rider/BaseObjectGetHashCodeCallInGetHashCode.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "BaseObjectGetHashCodeCallInGetHashCode", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedLiteralOperator", - "shortDescription": { - "text": "deprecated-literal-operator clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-literal-operator clang diagnostic · Learn more", - "markdown": "-Wdeprecated-literal-operator clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-literal-operator)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedLiteralOperator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityUppercaseLiteralSuffix", - "shortDescription": { - "text": "readability-uppercase-literal-suffix clang-tidy check" - }, - "fullDescription": { - "text": "readability-uppercase-literal-suffix clang-tidy check · Learn more", - "markdown": "readability-uppercase-literal-suffix clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/uppercase-literal-suffix.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityUppercaseLiteralSuffix", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDirectIvarAccess", - "shortDescription": { - "text": "direct-ivar-access clang diagnostic" - }, - "fullDescription": { - "text": "-Wdirect-ivar-access clang diagnostic · Learn more", - "markdown": "-Wdirect-ivar-access clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdirect-ivar-access)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDirectIvarAccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppIdenticalOperandsInBinaryExpression", - "shortDescription": { - "text": "Binary operator acts on identical operands" - }, - "fullDescription": { - "text": "Binary operator acts on identical operands", - "markdown": "Binary operator acts on identical operands" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppIdenticalOperandsInBinaryExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedRegister", - "shortDescription": { - "text": "deprecated-register clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-register clang diagnostic · Learn more", - "markdown": "-Wdeprecated-register clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-register)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedRegister", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMismatchedNewDelete", - "shortDescription": { - "text": "mismatched-new-delete clang diagnostic" - }, - "fullDescription": { - "text": "-Wmismatched-new-delete clang diagnostic · Learn more", - "markdown": "-Wmismatched-new-delete clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmismatched-new-delete)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMismatchedNewDelete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstAccessingManagedMethod", - "shortDescription": { - "text": "Accessing managed methods is not supported" - }, - "fullDescription": { - "text": "Accessing managed methods is not supported", - "markdown": "Accessing managed methods is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstAccessingManagedMethod", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ShiftExpressionResultEqualsZero", - "shortDescription": { - "text": "Constant shift expression with non-zero operands results in a zero value" - }, - "fullDescription": { - "text": "Constant shift expression with non-zero operands results in a zero value", - "markdown": "Constant shift expression with non-zero operands results in a zero value" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ShiftExpressionResultEqualsZero", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantStringInit", - "shortDescription": { - "text": "readability-redundant-string-init clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-string-init clang-tidy check · Learn more", - "markdown": "readability-redundant-string-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-string-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantStringInit", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsupportedTargetOpt", - "shortDescription": { - "text": "unsupported-target-opt clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsupported-target-opt clang diagnostic · Learn more", - "markdown": "-Wunsupported-target-opt clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-target-opt)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedTargetOpt", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalConstantInRangeCompare", - "shortDescription": { - "text": "tautological-constant-in-range-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-constant-in-range-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-constant-in-range-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-constant-in-range-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalConstantInRangeCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnknownEscapeSequence", - "shortDescription": { - "text": "unknown-escape-sequence clang diagnostic" - }, - "fullDescription": { - "text": "-Wunknown-escape-sequence clang diagnostic · Learn more", - "markdown": "-Wunknown-escape-sequence clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-escape-sequence)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnknownEscapeSequence", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppIgnoredRemoveResult", - "shortDescription": { - "text": "hicpp-ignored-remove-result clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-ignored-remove-result clang-tidy check · Learn more", - "markdown": "hicpp-ignored-remove-result clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/ignored-remove-result.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyHicppIgnoredRemoveResult", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseArrayEmptyMethod", - "shortDescription": { - "text": "Use 'Array.Empty()'" - }, - "fullDescription": { - "text": "Replace an empty array allocation with a call of the predefined 'Array.Empty()' method", - "markdown": "Replace an empty array allocation with a call of the predefined 'Array.Empty()' method" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseArrayEmptyMethod", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadCommaSpaces", - "shortDescription": { - "text": "Incorrect spacing (around comma)" - }, - "fullDescription": { - "text": "Around comma", - "markdown": "Around comma" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadCommaSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppAbstractClassWithoutSpecifier", - "shortDescription": { - "text": "Class is abstract but not explicitly declared as such" - }, - "fullDescription": { - "text": "The class is abstract but not explicitly declared as such", - "markdown": "The class is abstract but not explicitly declared as such" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppAbstractClassWithoutSpecifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Single.2", - "shortDescription": { - "text": "Replace with OfType().Single() (replace with OfType(Of ..)().Single(..))" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Single.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Single.1", - "shortDescription": { - "text": "Replace with OfType().Single() (replace with OfType(Of ..)().Single())" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Single(Function ($y$) $y$ IsNot Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Single.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatSecurity", - "shortDescription": { - "text": "format-security clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-security clang diagnostic · Learn more", - "markdown": "-Wformat-security clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-security)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatSecurity", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBoostFormatBadCode", - "shortDescription": { - "text": "Incorrect format directive in boost::format" - }, - "fullDescription": { - "text": "A format string of boost::format contains an erroneous format directive", - "markdown": "A format string of boost::format contains an erroneous format directive" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppBoostFormatBadCode", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp23LambdaAttributes", - "shortDescription": { - "text": "c++23-lambda-attributes clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++23-lambda-attributes clang diagnostic · Learn more", - "markdown": "-Wc++23-lambda-attributes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-23-lambda-attributes)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp23LambdaAttributes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadParensSpaces", - "shortDescription": { - "text": "Incorrect spacing (around parenthesis)" - }, - "fullDescription": { - "text": "Around parenthesis", - "markdown": "Around parenthesis" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadParensSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleInterfaceMemberAmbiguity", - "shortDescription": { - "text": "Possible ambiguity while accessing member by interface" - }, - "fullDescription": { - "text": "Possible ambiguity while accessing member by interface", - "markdown": "Possible ambiguity while accessing member by interface" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleInterfaceMemberAmbiguity", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPessimizingMove", - "shortDescription": { - "text": "pessimizing-move clang diagnostic" - }, - "fullDescription": { - "text": "-Wpessimizing-move clang diagnostic · Learn more", - "markdown": "-Wpessimizing-move clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpessimizing-move)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPessimizingMove", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MethodHasAsyncOverloadWithCancellation", - "shortDescription": { - "text": "Method has async overload with cancellation support" - }, - "fullDescription": { - "text": "Method has async overload with 'CancellationToken'", - "markdown": "Method has async overload with 'CancellationToken'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MethodHasAsyncOverloadWithCancellation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypes", - "shortDescription": { - "text": "incompatible-function-pointer-types clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-function-pointer-types clang diagnostic · Learn more", - "markdown": "-Wincompatible-function-pointer-types clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-function-pointer-types)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeleteNonAbstractNonVirtualDtor", - "shortDescription": { - "text": "delete-non-abstract-non-virtual-dtor clang diagnostic" - }, - "fullDescription": { - "text": "-Wdelete-non-abstract-non-virtual-dtor clang diagnostic · Learn more", - "markdown": "-Wdelete-non-abstract-non-virtual-dtor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelete-non-abstract-non-virtual-dtor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeleteNonAbstractNonVirtualDtor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPrivateSpecialMemberFunctionIsNotImplemented", - "shortDescription": { - "text": "Private special member function is not implemented" - }, - "fullDescription": { - "text": "A private special member function must be defined or deleted", - "markdown": "A private special member function must be defined or deleted" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPrivateSpecialMemberFunctionIsNotImplemented", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesAvoidGoto", - "shortDescription": { - "text": "cppcoreguidelines-avoid-goto clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-avoid-goto clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-avoid-goto clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-goto.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesAvoidGoto", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndefPrefix", - "shortDescription": { - "text": "undef-prefix clang diagnostic" - }, - "fullDescription": { - "text": "-Wundef-prefix clang diagnostic · Learn more", - "markdown": "-Wundef-prefix clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundef-prefix)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndefPrefix", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityInconsistentDeclarationParameterName", - "shortDescription": { - "text": "readability-inconsistent-declaration-parameter-name clang-tidy check" - }, - "fullDescription": { - "text": "readability-inconsistent-declaration-parameter-name clang-tidy check · Learn more", - "markdown": "readability-inconsistent-declaration-parameter-name clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/inconsistent-declaration-parameter-name.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityInconsistentDeclarationParameterName", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ObsoleteElementError", - "shortDescription": { - "text": "Use of obsolete type or type member (error)" - }, - "fullDescription": { - "text": "Use of obsolete type or type member in XAML markup (error)", - "markdown": "Use of obsolete type or type member in XAML markup (error)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ObsoleteElementError", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Compiler Warnings", - "index": 60, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertConstructorToMemberInitializers", - "shortDescription": { - "text": "Convert constructor into member initializers" - }, - "fullDescription": { - "text": "Replace constructor with members initialized inline Learn more...", - "markdown": "Replace constructor with members initialized inline [Learn more...](https://www.jetbrains.com/help/rider/ConvertConstructorToMemberInitializers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertConstructorToMemberInitializers", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.DuplicateShortcut", - "shortDescription": { - "text": "The same shortcut is defined for another menu item" - }, - "fullDescription": { - "text": "The same shortcut is defined for another menu item", - "markdown": "The same shortcut is defined for another menu item" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.DuplicateShortcut", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUnhandledExceptionAtNew", - "shortDescription": { - "text": "bugprone-unhandled-exception-at-new clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-unhandled-exception-at-new clang-tidy check · Learn more", - "markdown": "bugprone-unhandled-exception-at-new clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unhandled-exception-at-new.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUnhandledExceptionAtNew", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDllexportExplicitInstantiationDecl", - "shortDescription": { - "text": "dllexport-explicit-instantiation-decl clang diagnostic" - }, - "fullDescription": { - "text": "-Wdllexport-explicit-instantiation-decl clang diagnostic · Learn more", - "markdown": "-Wdllexport-explicit-instantiation-decl clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdllexport-explicit-instantiation-decl)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDllexportExplicitInstantiationDecl", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppIntegralToPointerConversion", - "shortDescription": { - "text": "Implicit integer to pointer conversion" - }, - "fullDescription": { - "text": "Implicit integer to pointer conversion", - "markdown": "Implicit integer to pointer conversion" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppIntegralToPointerConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0420", - "shortDescription": { - "text": "Reference to a volatile field will not be treated as volatile" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/4bw5ewxy.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0420", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFourCharConstants", - "shortDescription": { - "text": "four-char-constants clang diagnostic" - }, - "fullDescription": { - "text": "-Wfour-char-constants clang diagnostic · Learn more", - "markdown": "-Wfour-char-constants clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wfour-char-constants)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFourCharConstants", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8383", - "shortDescription": { - "text": "The tuple element name is ignored because a different name or no name is specified on the other side of the tuple == or != operator." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8383", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.XamlRelativeSourceDefaultModeWarningHighlighting", - "shortDescription": { - "text": "RelativeSourceMode is not set explicitly" - }, - "fullDescription": { - "text": "Default RelativeSourceMode value is platform-specific, explicit specification is required to process RelativeSource usage unambiguously", - "markdown": "Default RelativeSourceMode value is platform-specific, explicit specification is required to process RelativeSource usage unambiguously" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.XamlRelativeSourceDefaultModeWarningHighlighting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.RangeAttributeBoundsAreOutOfRange", - "shortDescription": { - "text": "NUnit. Values in range do not fit the type of the test parameter." - }, - "fullDescription": { - "text": "NUnit. Values specified in [Range] are out range for the type of the test parameter. Learn more...", - "markdown": "NUnit. Values specified in \\[Range\\] are out range for the type of the test parameter. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RangeAttributeBoundsAreOutOfRange.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.RangeAttributeBoundsAreOutOfRange", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyFuchsiaVirtualInheritance", - "shortDescription": { - "text": "fuchsia-virtual-inheritance clang-tidy check" - }, - "fullDescription": { - "text": "fuchsia-virtual-inheritance clang-tidy check · Learn more", - "markdown": "fuchsia-virtual-inheritance clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/virtual-inheritance.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyFuchsiaVirtualInheritance", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuPointerArith", - "shortDescription": { - "text": "gnu-pointer-arith clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-pointer-arith clang diagnostic · Learn more", - "markdown": "-Wgnu-pointer-arith clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-pointer-arith)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuPointerArith", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertMsc33C", - "shortDescription": { - "text": "cert-msc33-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-msc33-c clang-tidy check · Learn more", - "markdown": "cert-msc33-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc33-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertMsc33C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadIndent", - "shortDescription": { - "text": "Incorrect indent (redundant indent/outdent elsewhere)" - }, - "fullDescription": { - "text": "Redundant indent/outdent elsewhere Learn more...", - "markdown": "Redundant indent/outdent elsewhere [Learn more...](https://www.jetbrains.com/help/rider/BadIndent.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertCon54Cpp", - "shortDescription": { - "text": "cert-con54-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-con54-cpp clang-tidy check · Learn more", - "markdown": "cert-con54-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/con54-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertCon54Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAssignedOutParameter", - "shortDescription": { - "text": "'out' parameter is not assigned upon exit" - }, - "fullDescription": { - "text": "'out' parameter is not assigned upon exit", - "markdown": "'out' parameter is not assigned upon exit" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotAssignedOutParameter", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Potential Code Quality Issues", - "index": 62, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidPpToken", - "shortDescription": { - "text": "invalid-pp-token clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-pp-token clang diagnostic · Learn more", - "markdown": "-Winvalid-pp-token clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-pp-token)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidPpToken", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1723", - "shortDescription": { - "text": "XML comment has cref attribute that refers to a type parameter" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/ms228603.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1723", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.RedundantExpectedResultInTestCaseAttribute", - "shortDescription": { - "text": "NUnit. Redundant expected result for void test method." - }, - "fullDescription": { - "text": "Specifying expected result for void NUnit test methods through the [TestCase] attribute is redundant. Learn more...", - "markdown": "Specifying expected result for void NUnit test methods through the \\[TestCase\\] attribute is redundant. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RedundantExpectedResultInTestCaseAttribute.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.RedundantExpectedResultInTestCaseAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.UnknownTag", - "shortDescription": { - "text": "The tag is not defined in the 'Tags & Layers'" - }, - "fullDescription": { - "text": "The tag is not defined in the 'Tags & Layers'. Expression will return 'false'.", - "markdown": "The tag is not defined in the 'Tags \\& Layers'. Expression will return 'false'." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.UnknownTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantExplicitParamsArrayCreation", - "shortDescription": { - "text": "Redundant explicit collection creation in argument of 'params' parameter" - }, - "fullDescription": { - "text": "Explicit collection creation in an argument passed to the 'params' parameter is redundant Learn more...", - "markdown": "Explicit collection creation in an argument passed to the 'params' parameter is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitParamsArrayCreation.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RedundantExplicitParamsArrayCreation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleObjcFunctionNaming", - "shortDescription": { - "text": "google-objc-function-naming clang-tidy check" - }, - "fullDescription": { - "text": "google-objc-function-naming clang-tidy check · Learn more", - "markdown": "google-objc-function-naming clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/objc-function-naming.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleObjcFunctionNaming", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinPerformancePadding", - "shortDescription": { - "text": "optin.performance.Padding clang static analyzer check" - }, - "fullDescription": { - "text": "optin.performance.Padding clang static analyzer check · Learn more", - "markdown": "optin.performance.Padding clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinPerformancePadding", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS7023", - "shortDescription": { - "text": "Static type in 'is' or 'as' operator." - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/warning-waves#cs7023---a-static-type-is-used-in-an-is-or-as-expression)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS7023", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.Warning", - "shortDescription": { - "text": "ASP.NET Warning" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Asp.Warning", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS7022", - "shortDescription": { - "text": "The 'Main' method will not be used as an entry point because compilation unit with top-level statements was found." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS7022", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneMultipleNewInOneExpression", - "shortDescription": { - "text": "bugprone-multiple-new-in-one-expression clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-multiple-new-in-one-expression clang-tidy check · Learn more", - "markdown": "bugprone-multiple-new-in-one-expression clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/multiple-new-in-one-expression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneMultipleNewInOneExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreUninitializedArraySubscript", - "shortDescription": { - "text": "core.uninitialized.ArraySubscript clang static analyzer check" - }, - "fullDescription": { - "text": "core.uninitialized.ArraySubscript clang static analyzer check · Learn more", - "markdown": "core.uninitialized.ArraySubscript clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedArraySubscript", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseIndexFromEndExpression", - "shortDescription": { - "text": "Use index from end expression" - }, - "fullDescription": { - "text": "Replace array indexer argument with index from end expression", - "markdown": "Replace array indexer argument with index from end expression" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseIndexFromEndExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.ParameterTypeAndConstraintsMismatch", - "shortDescription": { - "text": "Type of parameter doesn't satisfy constraints declared in route template" - }, - "fullDescription": { - "text": "Type of parameter doesn't satisfy constraints declared in route template", - "markdown": "Type of parameter doesn't satisfy constraints declared in route template" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.ParameterTypeAndConstraintsMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertMsc32C", - "shortDescription": { - "text": "cert-msc32-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-msc32-c clang-tidy check · Learn more", - "markdown": "cert-msc32-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc32-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertMsc32C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuBinaryLiteral", - "shortDescription": { - "text": "gnu-binary-literal clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-binary-literal clang diagnostic · Learn more", - "markdown": "-Wgnu-binary-literal clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-binary-literal)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuBinaryLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertTypeCheckToNullCheck", - "shortDescription": { - "text": "Use null check instead of a type check succeeding on any not-null value" - }, - "fullDescription": { - "text": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead. Learn more...", - "markdown": "The expression of 'is' operator matches the provided type on any non-null value. Consider comparing with 'null' instead. [Learn more...](https://www.jetbrains.com/help/rider/ConvertTypeCheckToNullCheck.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ConvertTypeCheckToNullCheck", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppUseEqualsDefault", - "shortDescription": { - "text": "hicpp-use-equals-default clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-use-equals-default clang-tidy check · Learn more", - "markdown": "hicpp-use-equals-default clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-equals-default.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppUseEqualsDefault", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.IgnoredParameterAttribute", - "shortDescription": { - "text": "NUnit. Ignored parameter attribute." - }, - "fullDescription": { - "text": "NUnit. Parameter attribute is ignored by NUnit framework.", - "markdown": "NUnit. Parameter attribute is ignored by NUnit framework." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.IgnoredParameterAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseTransparentFunctors", - "shortDescription": { - "text": "modernize-use-transparent-functors clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-transparent-functors clang-tidy check · Learn more", - "markdown": "modernize-use-transparent-functors clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-transparent-functors.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseTransparentFunctors", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MeaninglessDefaultParameterValue", - "shortDescription": { - "text": "'DefaultParameterValueAttribute' must be used in conjunction with 'OptionalAttribute'" - }, - "fullDescription": { - "text": "'DefaultParameterValueAttribute' must be used in conjunction with 'OptionalAttribute'", - "markdown": "'DefaultParameterValueAttribute' must be used in conjunction with 'OptionalAttribute'" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MeaninglessDefaultParameterValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnneededInternalDeclaration", - "shortDescription": { - "text": "unneeded-internal-declaration clang diagnostic" - }, - "fullDescription": { - "text": "-Wunneeded-internal-declaration clang diagnostic · Learn more", - "markdown": "-Wunneeded-internal-declaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunneeded-internal-declaration)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnneededInternalDeclaration", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstCreatingManagedType", - "shortDescription": { - "text": "Creating a managed type is not supported" - }, - "fullDescription": { - "text": "Creating a managed type is not supported", - "markdown": "Creating a managed type is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstCreatingManagedType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDangling", - "shortDescription": { - "text": "dangling clang diagnostic" - }, - "fullDescription": { - "text": "-Wdangling clang diagnostic · Learn more", - "markdown": "-Wdangling clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdangling)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDangling", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticWeakVtables", - "shortDescription": { - "text": "weak-vtables clang diagnostic" - }, - "fullDescription": { - "text": "-Wweak-vtables clang diagnostic · Learn more", - "markdown": "-Wweak-vtables clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wweak-vtables)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticWeakVtables", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingNoreturn", - "shortDescription": { - "text": "missing-noreturn clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-noreturn clang diagnostic · Learn more", - "markdown": "-Wmissing-noreturn clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-noreturn)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingNoreturn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppIfCanBeReplacedByConstexprIf", - "shortDescription": { - "text": "If statement with constant condition can be replaced with 'if constexpr'" - }, - "fullDescription": { - "text": "If statement with constant condition can be replaced with 'if constexpr'", - "markdown": "If statement with constant condition can be replaced with 'if constexpr'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppIfCanBeReplacedByConstexprIf", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppUseNoexcept", - "shortDescription": { - "text": "hicpp-use-noexcept clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-use-noexcept clang-tidy check · Learn more", - "markdown": "hicpp-use-noexcept clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/use-noexcept.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppUseNoexcept", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0458", - "shortDescription": { - "text": "The result of the expression is always 'null' of nullable type" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0458)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0458", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedButSetParameter", - "shortDescription": { - "text": "unused-but-set-parameter clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-but-set-parameter clang diagnostic · Learn more", - "markdown": "-Wunused-but-set-parameter clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-but-set-parameter)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedButSetParameter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDefaultCaseNotHandledInSwitchStatement", - "shortDescription": { - "text": "Default case is not handled in a switch statement" - }, - "fullDescription": { - "text": "Default case is not handled in a switch statement", - "markdown": "Default case is not handled in a switch statement" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDefaultCaseNotHandledInSwitchStatement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShadowFieldInConstructorModified", - "shortDescription": { - "text": "shadow-field-in-constructor-modified clang diagnostic" - }, - "fullDescription": { - "text": "-Wshadow-field-in-constructor-modified clang diagnostic · Learn more", - "markdown": "-Wshadow-field-in-constructor-modified clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-field-in-constructor-modified)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShadowFieldInConstructorModified", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotOverriddenInSpecificCulture", - "shortDescription": { - "text": "Resource is not overridden in specific culture" - }, - "fullDescription": { - "text": "Resource is not overridden in one or more specific cultures Learn more...", - "markdown": "Resource is not overridden in one or more specific cultures [Learn more...](https://www.jetbrains.com/help/rider/NotOverriddenInSpecificCulture.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotOverriddenInSpecificCulture", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ResX/Potential Code Quality Issues", - "index": 68, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NonReadonlyMemberInGetHashCode", - "shortDescription": { - "text": "Non-readonly type member referenced in 'GetHashCode()'" - }, - "fullDescription": { - "text": "Non-readonly field or auto-property referenced in 'GetHashCode()' Learn more...", - "markdown": "Non-readonly field or auto-property referenced in 'GetHashCode()' [Learn more...](https://www.jetbrains.com/help/rider/NonReadonlyMemberInGetHashCode.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NonReadonlyMemberInGetHashCode", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscConfusableIdentifiers", - "shortDescription": { - "text": "misc-confusable-identifiers clang-tidy check" - }, - "fullDescription": { - "text": "misc-confusable-identifiers clang-tidy check · Learn more", - "markdown": "misc-confusable-identifiers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/confusable-identifiers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscConfusableIdentifiers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonportableSystemIncludePath", - "shortDescription": { - "text": "nonportable-system-include-path clang diagnostic" - }, - "fullDescription": { - "text": "-Wnonportable-system-include-path clang diagnostic · Learn more", - "markdown": "-Wnonportable-system-include-path clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnonportable-system-include-path)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonportableSystemIncludePath", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertMsc30C", - "shortDescription": { - "text": "cert-msc30-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-msc30-c clang-tidy check · Learn more", - "markdown": "cert-msc30-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc30-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertMsc30C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPragmaOnceOutsideHeader", - "shortDescription": { - "text": "pragma-once-outside-header clang diagnostic" - }, - "fullDescription": { - "text": "-Wpragma-once-outside-header clang diagnostic · Learn more", - "markdown": "-Wpragma-once-outside-header clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-once-outside-header)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPragmaOnceOutsideHeader", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAtomicAlignment", - "shortDescription": { - "text": "atomic-alignment clang diagnostic" - }, - "fullDescription": { - "text": "-Watomic-alignment clang diagnostic · Learn more", - "markdown": "-Watomic-alignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#watomic-alignment)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAtomicAlignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedAnonymousMethodSignature", - "shortDescription": { - "text": "Anonymous method signature is not necessary" - }, - "fullDescription": { - "text": "Specifying signature in an anonymous method is not necessary because none of its parameters are used in the body", - "markdown": "Specifying signature in an anonymous method is not necessary because none of its parameters are used in the body" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedAnonymousMethodSignature", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0469", - "shortDescription": { - "text": "'goto case' value is not implicitly convertible to required type" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/ms228370.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0469", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingExceptionSpec", - "shortDescription": { - "text": "missing-exception-spec clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-exception-spec clang diagnostic · Learn more", - "markdown": "-Wmissing-exception-spec clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-exception-spec)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingExceptionSpec", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPoisonSystemDirectories", - "shortDescription": { - "text": "poison-system-directories clang diagnostic" - }, - "fullDescription": { - "text": "-Wpoison-system-directories clang diagnostic · Learn more", - "markdown": "-Wpoison-system-directories clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpoison-system-directories)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPoisonSystemDirectories", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0464", - "shortDescription": { - "text": "Comparing with null of nullable value type always produces 'false'" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0464)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0464", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0465", - "shortDescription": { - "text": "Introducing a 'Finalize' method can interfere with destructor invocation" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/02wtfwbt.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0465", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedLambdaCapture", - "shortDescription": { - "text": "unused-lambda-capture clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-lambda-capture clang diagnostic · Learn more", - "markdown": "-Wunused-lambda-capture clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-lambda-capture)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedLambdaCapture", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormat", - "shortDescription": { - "text": "format clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat clang diagnostic · Learn more", - "markdown": "-Wformat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIgnoredReferenceQualifiers", - "shortDescription": { - "text": "ignored-reference-qualifiers clang diagnostic" - }, - "fullDescription": { - "text": "-Wignored-reference-qualifiers clang diagnostic · Learn more", - "markdown": "-Wignored-reference-qualifiers clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wignored-reference-qualifiers)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIgnoredReferenceQualifiers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreCpp2cCompatPedantic", - "shortDescription": { - "text": "pre-c++2c-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c++2c-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wpre-c++2c-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c-2c-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreCpp2cCompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.EmptyGridLengthDefinition", - "shortDescription": { - "text": "Grid length definition must not be empty" - }, - "fullDescription": { - "text": "Grid length definition must not be empty", - "markdown": "Grid length definition must not be empty" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.EmptyGridLengthDefinition", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseMethodAny.1", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() > 0", - "markdown": "$seq$.Count() \\> 0" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseMethodAny.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS7095", - "shortDescription": { - "text": "Filter expression is a constant, consider removing the filter" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS7095", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseMethodAny.2", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() >= 1", - "markdown": "$seq$.Count() \\>= 1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseMethodAny.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseMethodAny.3", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() = 0", - "markdown": "$seq$.Count() = 0" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseMethodAny.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseMethodAny.4", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() <= 0", - "markdown": "$seq$.Count() \\<= 0" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseMethodAny.4", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBUseMethodAny.5", - "shortDescription": { - "text": "Use method Any()" - }, - "fullDescription": { - "text": "$seq$.Count() < 1", - "markdown": "$seq$.Count() \\< 1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBUseMethodAny.5", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUsedButMarkedUnused", - "shortDescription": { - "text": "used-but-marked-unused clang diagnostic" - }, - "fullDescription": { - "text": "-Wused-but-marked-unused clang diagnostic · Learn more", - "markdown": "-Wused-but-marked-unused clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wused-but-marked-unused)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUsedButMarkedUnused", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOverloadedShiftOpParentheses", - "shortDescription": { - "text": "overloaded-shift-op-parentheses clang diagnostic" - }, - "fullDescription": { - "text": "-Woverloaded-shift-op-parentheses clang diagnostic · Learn more", - "markdown": "-Woverloaded-shift-op-parentheses clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverloaded-shift-op-parentheses)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOverloadedShiftOpParentheses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpInterpolatedString", - "shortDescription": { - "text": "Format string can be replaced with an interpolated string" - }, - "fullDescription": { - "text": "Format string can be replaced with an interpolated string.", - "markdown": "Format string can be replaced with an interpolated string." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FSharpInterpolatedString", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithFieldKeyword", - "shortDescription": { - "text": "Replace with 'field' keyword" - }, - "fullDescription": { - "text": "Replace explicit field declaration with a 'field' keyword usage in corresponding property declaration (anonymous field)", - "markdown": "Replace explicit field declaration with a 'field' keyword usage in corresponding property declaration (anonymous field)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithFieldKeyword", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeTypeModifiers", - "shortDescription": { - "text": "Use explicit or implicit modifier definition for types" - }, - "fullDescription": { - "text": "'internal' modifier can be safely added/removed from types without changing code semantics Learn more...", - "markdown": "'internal' modifier can be safely added/removed from types without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeTypeModifiers.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ArrangeTypeModifiers", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonModularIncludeInFrameworkModule", - "shortDescription": { - "text": "non-modular-include-in-framework-module clang diagnostic" - }, - "fullDescription": { - "text": "-Wnon-modular-include-in-framework-module clang diagnostic · Learn more", - "markdown": "-Wnon-modular-include-in-framework-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-modular-include-in-framework-module)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonModularIncludeInFrameworkModule", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LocalFunctionHidesMethod", - "shortDescription": { - "text": "Local function hides method" - }, - "fullDescription": { - "text": "Local function has the same name as a method and hides it", - "markdown": "Local function has the same name as a method and hides it" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "LocalFunctionHidesMethod", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.LoadSceneAmbiguousSceneName", - "shortDescription": { - "text": "Short scene name is not unique" - }, - "fullDescription": { - "text": "There are several scenes with the same name in the Unity build settings. Only scene with smallest index will be used.", - "markdown": "There are several scenes with the same name in the Unity build settings. Only scene with smallest index will be used." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.LoadSceneAmbiguousSceneName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.LoadSceneDisabledSceneName", - "shortDescription": { - "text": "Scene is disabled in the build settings" - }, - "fullDescription": { - "text": "Scene is disabled in the Unity build settings, so it could not be loaded", - "markdown": "Scene is disabled in the Unity build settings, so it could not be loaded" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.LoadSceneDisabledSceneName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstStringFormatInvalidArgument", - "shortDescription": { - "text": "Burst: String.Format(format, ...) invalid argument type" - }, - "fullDescription": { - "text": "Burst: String.Format(format, ...) invalid argument type", - "markdown": "Burst: String.Format(format, ...) invalid argument type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstStringFormatInvalidArgument", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReturnTypeCanBeNotNullable", - "shortDescription": { - "text": "Return type of a function can be made non-nullable" - }, - "fullDescription": { - "text": "Function's return type is declared as nullable but it never returns nullable values", - "markdown": "Function's return type is declared as nullable but it never returns nullable values" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ReturnTypeCanBeNotNullable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDefaultedFunctionDeleted", - "shortDescription": { - "text": "defaulted-function-deleted clang diagnostic" - }, - "fullDescription": { - "text": "-Wdefaulted-function-deleted clang diagnostic · Learn more", - "markdown": "-Wdefaulted-function-deleted clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdefaulted-function-deleted)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDefaultedFunctionDeleted", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MissingBodyTag", - "shortDescription": { - "text": "Important tags or attributes missing (missing )" - }, - "fullDescription": { - "text": "<([)html(]) $attr1$>$cont$", - "markdown": "\\<(\\[)html(\\]) $attr1$\\>$cont$" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "MissingBodyTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Common Practices and Code Improvements", - "index": 74, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppOutParameterMustBeWritten", - "shortDescription": { - "text": "The 'out' parameter must be assigned" - }, - "fullDescription": { - "text": "In HLSL 'out' parameters must be assigned before exiting the function", - "markdown": "In HLSL 'out' parameters must be assigned before exiting the function" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppOutParameterMustBeWritten", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.BindingWithContextNotResolved", - "shortDescription": { - "text": "Unresolved binding path when DataContext is known" - }, - "fullDescription": { - "text": "Unresolved binding path when DataContext for data binding is specified, but symbol cannot be found", - "markdown": "Unresolved binding path when DataContext for data binding is specified, but symbol cannot be found" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.BindingWithContextNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppWarningDirective", - "shortDescription": { - "text": "#warning directive" - }, - "fullDescription": { - "text": "#warning preprocessor directive", - "markdown": "#warning preprocessor directive" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppWarningDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOutOfScopeFunction", - "shortDescription": { - "text": "out-of-scope-function clang diagnostic" - }, - "fullDescription": { - "text": "-Wout-of-scope-function clang diagnostic · Learn more", - "markdown": "-Wout-of-scope-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wout-of-scope-function)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOutOfScopeFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeConstructorOrDestructorBody", - "shortDescription": { - "text": "Use preferred body style (convert into constructor or destructor with preferred body style)" - }, - "fullDescription": { - "text": "Use expression or block body Learn more...", - "markdown": "Use expression or block body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeConstructorOrDestructorBody.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ArrangeConstructorOrDestructorBody", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.TagShouldNotBeSelfClosed", - "shortDescription": { - "text": "Wrong self-closed tag" - }, - "fullDescription": { - "text": "Wrong self-closed tag in HTML and related technologies", - "markdown": "Wrong self-closed tag in HTML and related technologies" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.TagShouldNotBeSelfClosed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticModuleConflict", - "shortDescription": { - "text": "module-conflict clang diagnostic" - }, - "fullDescription": { - "text": "-Wmodule-conflict clang diagnostic · Learn more", - "markdown": "-Wmodule-conflict clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodule-conflict)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticModuleConflict", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantExtendsListEntry", - "shortDescription": { - "text": "Redundant class or interface specification in base types list" - }, - "fullDescription": { - "text": "Type is either mentioned in the base types list of other part or it is an interface and appears as other type's base and contains no explicit implementations Learn more...", - "markdown": "Type is either mentioned in the base types list of other part or it is an interface and appears as other type's base and contains no explicit implementations [Learn more...](https://www.jetbrains.com/help/rider/RedundantExtendsListEntry.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantExtendsListEntry", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReturnValueOfPureMethodIsNotUsed", - "shortDescription": { - "text": "Return value of pure method is not used" - }, - "fullDescription": { - "text": "Return value of pure method is not used Learn more...", - "markdown": "Return value of pure method is not used [Learn more...](https://www.jetbrains.com/help/rider/ReturnValueOfPureMethodIsNotUsed.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ReturnValueOfPureMethodIsNotUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatOverflowNonKprintf", - "shortDescription": { - "text": "format-overflow-non-kprintf clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-overflow-non-kprintf clang diagnostic · Learn more", - "markdown": "-Wformat-overflow-non-kprintf clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-overflow-non-kprintf)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatOverflowNonKprintf", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticConfigMacros", - "shortDescription": { - "text": "config-macros clang diagnostic" - }, - "fullDescription": { - "text": "-Wconfig-macros clang diagnostic · Learn more", - "markdown": "-Wconfig-macros clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconfig-macros)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticConfigMacros", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDocumentationUnknownCommand", - "shortDescription": { - "text": "documentation-unknown-command clang diagnostic" - }, - "fullDescription": { - "text": "-Wdocumentation-unknown-command clang diagnostic · Learn more", - "markdown": "-Wdocumentation-unknown-command clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation-unknown-command)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDocumentationUnknownCommand", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyStatement", - "shortDescription": { - "text": "Empty statement is redundant" - }, - "fullDescription": { - "text": "Empty statement is redundant Learn more...", - "markdown": "Empty statement is redundant [Learn more...](https://www.jetbrains.com/help/rider/EmptyStatement.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "EmptyStatement", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAccessedPositionalProperty.Local", - "shortDescription": { - "text": "Non-accessed positional property (private accessibility)" - }, - "fullDescription": { - "text": "Positional property is never accessed for reading Learn more...", - "markdown": "Positional property is never accessed for reading [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedPositionalProperty.Local.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotAccessedPositionalProperty.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAliasTemplateInDeclarationName", - "shortDescription": { - "text": "alias-template-in-declaration-name clang diagnostic" - }, - "fullDescription": { - "text": "-Walias-template-in-declaration-name clang diagnostic · Learn more", - "markdown": "-Walias-template-in-declaration-name clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#walias-template-in-declaration-name)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAliasTemplateInDeclarationName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.IncorrectMethodSignatureInStringLiteral", - "shortDescription": { - "text": "Method referenced in string literal does not have the expected signature" - }, - "fullDescription": { - "text": "Method referenced in string literal does not have the expected signature.", - "markdown": "Method referenced in string literal does not have the expected signature." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.IncorrectMethodSignatureInStringLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantFreezeAttribute", - "shortDescription": { - "text": "Redundant 'Freeze' attribute" - }, - "fullDescription": { - "text": "Freeze attribute is not used and can be safely removed", - "markdown": "Freeze attribute is not used and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantFreezeAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnassignedGetOnlyAutoProperty", - "shortDescription": { - "text": "Get-only auto-property is never assigned" - }, - "fullDescription": { - "text": "Auto-property without setter has no initializer or is never assigned in constructor Learn more...", - "markdown": "Auto-property without setter has no initializer or is never assigned in constructor [Learn more...](https://www.jetbrains.com/help/rider/UnassignedGetOnlyAutoProperty.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnassignedGetOnlyAutoProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1007", - "shortDescription": { - "text": "RoslynAnalyzers Add braces" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1007", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringSpanComparison", - "shortDescription": { - "text": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location" - }, - "fullDescription": { - "text": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location. Spans from freshly created or static strings are unlikely to be equal to other spans, probably you want to compare chars/bytes instead. Learn more...", - "markdown": "Possibly wrong string comparison: spans are only equal when pointing to the same memory location. Spans from freshly created or static strings are unlikely to be equal to other spans, probably you want to compare chars/bytes instead. [Learn more...](https://www.jetbrains.com/help/rider/StringSpanComparison.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringSpanComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1008", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Use explicit type instead of 'var' (when the type is not obvious)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1008", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1009", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Use explicit type instead of 'var' (foreach variable)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1009", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUE4BlueprintCallableFunctionMayBeStatic", - "shortDescription": { - "text": "BlueprintCallable function can be made static" - }, - "fullDescription": { - "text": "BlueprintCallable function can be made static", - "markdown": "BlueprintCallable function can be made static" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUE4BlueprintCallableFunctionMayBeStatic", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1003", - "shortDescription": { - "text": "RoslynAnalyzers Add braces to if-else (when expression spans over multiple lines)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1003", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1004", - "shortDescription": { - "text": "RoslynAnalyzers Remove braces from if-else" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1004", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1005", - "shortDescription": { - "text": "RoslynAnalyzers Simplify nested using statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1005", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUnhandledSelfAssignment", - "shortDescription": { - "text": "bugprone-unhandled-self-assignment clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-unhandled-self-assignment clang-tidy check · Learn more", - "markdown": "bugprone-unhandled-self-assignment clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unhandled-self-assignment.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUnhandledSelfAssignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1006", - "shortDescription": { - "text": "RoslynAnalyzers Merge 'else' with nested 'if'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1006", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSuspiciousMemoryComparison", - "shortDescription": { - "text": "bugprone-suspicious-memory-comparison clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-suspicious-memory-comparison clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-memory-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-memory-comparison.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSuspiciousMemoryComparison", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1001", - "shortDescription": { - "text": "RoslynAnalyzers Add braces (when expression spans over multiple lines)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1001", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1002", - "shortDescription": { - "text": "RoslynAnalyzers Remove braces" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1002", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AssignNullToNotNullAttribute", - "shortDescription": { - "text": "Possible 'null' assignment to non-nullable entity" - }, - "fullDescription": { - "text": "An expression that can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute. Learn more...", - "markdown": "An expression that can have 'null' value is assigned to an entity marked with 'Value cannot be null' attribute. In particular, this can happen when passing such value to a method whose parameter is marked with 'Value cannot be null' attribute. [Learn more...](https://www.jetbrains.com/help/rider/AssignNullToNotNullAttribute.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AssignNullToNotNullAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseStdPrint", - "shortDescription": { - "text": "modernize-use-std-print clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-std-print clang-tidy check · Learn more", - "markdown": "modernize-use-std-print clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-std-print.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseStdPrint", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneIncorrectEnableIf", - "shortDescription": { - "text": "bugprone-incorrect-enable-if clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-incorrect-enable-if clang-tidy check · Learn more", - "markdown": "bugprone-incorrect-enable-if clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/incorrect-enable-if.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneIncorrectEnableIf", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDeclarationSpecifierWithoutDeclarators", - "shortDescription": { - "text": "Declaration specifier with no declarators" - }, - "fullDescription": { - "text": "A declaration specifier is ignored when there are no declarators", - "markdown": "A declaration specifier is ignored when there are no declarators" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDeclarationSpecifierWithoutDeclarators", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDuplicateMethodArg", - "shortDescription": { - "text": "duplicate-method-arg clang diagnostic" - }, - "fullDescription": { - "text": "-Wduplicate-method-arg clang diagnostic · Learn more", - "markdown": "-Wduplicate-method-arg clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-method-arg)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDuplicateMethodArg", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.ModuleQualificationResolve", - "shortDescription": { - "text": "Module qualification required" - }, - "fullDescription": { - "text": "Module qualification required for type resolution", - "markdown": "Module qualification required for type resolution" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.ModuleQualificationResolve", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Potential Code Quality Issues", - "index": 82, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesNonPrivateMemberVariablesInClasses", - "shortDescription": { - "text": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-non-private-member-variables-in-classes clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/non-private-member-variables-in-classes.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesNonPrivateMemberVariablesInClasses", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaSelfInit", - "shortDescription": { - "text": "osx.cocoa.SelfInit clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.SelfInit clang static analyzer check · Learn more", - "markdown": "osx.cocoa.SelfInit clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaSelfInit", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IntroduceOptionalParameters.Global", - "shortDescription": { - "text": "Introduce optional parameters (non-private accessibility)" - }, - "fullDescription": { - "text": "Introduce optional parameters to overload method Learn more...", - "markdown": "Introduce optional parameters to overload method [Learn more...](https://www.jetbrains.com/help/rider/IntroduceOptionalParameters.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "IntroduceOptionalParameters.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesNoexceptSwap", - "shortDescription": { - "text": "cppcoreguidelines-noexcept-swap clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-noexcept-swap clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-noexcept-swap clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/noexcept-swap.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesNoexceptSwap", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DoubleNegationOperator", - "shortDescription": { - "text": "Double negation operator" - }, - "fullDescription": { - "text": "Double negation is meaningless bool b = !!condition; Learn more...", - "markdown": "Double negation is meaningless\n\n```\nbool b = !!condition;\n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/DoubleNegationOperator.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "DoubleNegationOperator", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleBuildNamespaces", - "shortDescription": { - "text": "google-build-namespaces clang-tidy check" - }, - "fullDescription": { - "text": "google-build-namespaces clang-tidy check · Learn more", - "markdown": "google-build-namespaces clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-namespaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleBuildNamespaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneForwardingReferenceOverload", - "shortDescription": { - "text": "bugprone-forwarding-reference-overload clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-forwarding-reference-overload clang-tidy check · Learn more", - "markdown": "bugprone-forwarding-reference-overload clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/forwarding-reference-overload.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneForwardingReferenceOverload", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseNullptr", - "shortDescription": { - "text": "modernize-use-nullptr clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-nullptr clang-tidy check · Learn more", - "markdown": "modernize-use-nullptr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-nullptr.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseNullptr", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1031", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary braces in switch section" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1031", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleCallToSingle", - "shortDescription": { - "text": "Replace with single call to Single(..)" - }, - "fullDescription": { - "text": "$seq$.Where($x$ => $expr$).Single()", - "markdown": "$seq$.Where($x$ =\\> $expr$).Single()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleCallToSingle", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizePassByValue", - "shortDescription": { - "text": "modernize-pass-by-value clang-tidy check" - }, - "fullDescription": { - "text": "modernize-pass-by-value clang-tidy check · Learn more", - "markdown": "modernize-pass-by-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/pass-by-value.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizePassByValue", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRegister", - "shortDescription": { - "text": "register clang diagnostic" - }, - "fullDescription": { - "text": "-Wregister clang diagnostic · Learn more", - "markdown": "-Wregister clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wregister)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRegister", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS0472", - "shortDescription": { - "text": "The result of the expression is always 'true' or 'false' since a value of value type is never equal to 'null'" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0472)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS0472", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstFunctionSignatureContainsManagedTypes", - "shortDescription": { - "text": "Function signature cannot contain managed types" - }, - "fullDescription": { - "text": "Function signature cannot contain managed types", - "markdown": "Function signature cannot contain managed types" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstFunctionSignatureContainsManagedTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuConditionalOmittedOperand", - "shortDescription": { - "text": "gnu-conditional-omitted-operand clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-conditional-omitted-operand clang diagnostic · Learn more", - "markdown": "-Wgnu-conditional-omitted-operand clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-conditional-omitted-operand)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuConditionalOmittedOperand", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticClassVarargs", - "shortDescription": { - "text": "class-varargs clang diagnostic" - }, - "fullDescription": { - "text": "-Wclass-varargs clang diagnostic · Learn more", - "markdown": "-Wclass-varargs clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wclass-varargs)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticClassVarargs", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1021", - "shortDescription": { - "text": "RoslynAnalyzers Convert lambda expression body to expression body" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1021", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1020", - "shortDescription": { - "text": "RoslynAnalyzers Simplify Nullable to T?" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1020", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCastFunctionType", - "shortDescription": { - "text": "cast-function-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wcast-function-type clang diagnostic · Learn more", - "markdown": "-Wcast-function-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-function-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCastFunctionType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppWrongIndentSize", - "shortDescription": { - "text": "Incorrect indent (incorrect indent size)" - }, - "fullDescription": { - "text": "Incorrect indent size", - "markdown": "Incorrect indent size" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppWrongIndentSize", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeRedundantParentheses", - "shortDescription": { - "text": "Remove redundant parentheses" - }, - "fullDescription": { - "text": "Parentheses can be safely removed from expressions without changing code semantics Learn more...", - "markdown": "Parentheses can be safely removed from expressions without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeRedundantParentheses.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeRedundantParentheses", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.ResourceFilePathCaseMismatch", - "shortDescription": { - "text": "Path to resource is case-sensitive" - }, - "fullDescription": { - "text": "Path to resource is case-sensitive", - "markdown": "Path to resource is case-sensitive" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.ResourceFilePathCaseMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithLastOrDefault.2", - "shortDescription": { - "text": "Replace with LastOrDefault($args$)" - }, - "fullDescription": { - "text": "$expr$ && $seq$.Any($args$) ? $seq$.Last($args$) : null", - "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Last($args$) : null" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithLastOrDefault.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithLastOrDefault.3", - "shortDescription": { - "text": "Replace with LastOrDefault($args$)" - }, - "fullDescription": { - "text": "$seq$.Any($args$) ? $seq$.Last($args$) : default($T$)", - "markdown": "$seq$.Any($args$) ? $seq$.Last($args$) : default($T$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithLastOrDefault.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleInvalidCastExceptionInForeachLoop", - "shortDescription": { - "text": "Possible 'System.InvalidCastException' in foreach loop" - }, - "fullDescription": { - "text": "Possible cast expression of incompatible type Learn more...", - "markdown": "Possible cast expression of incompatible type [Learn more...](https://www.jetbrains.com/help/rider/PossibleInvalidCastExceptionInForeachLoop.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleInvalidCastExceptionInForeachLoop", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingPrototypes", - "shortDescription": { - "text": "missing-prototypes clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-prototypes clang diagnostic · Learn more", - "markdown": "-Wmissing-prototypes clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-prototypes)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingPrototypes", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithLastOrDefault.1", - "shortDescription": { - "text": "Replace with LastOrDefault($args$)" - }, - "fullDescription": { - "text": "$seq$.Any($args$) ? $seq$.Last($args$) : null", - "markdown": "$seq$.Any($args$) ? $seq$.Last($args$) : null" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithLastOrDefault.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1018", - "shortDescription": { - "text": "RoslynAnalyzers Add/remove accessibility modifiers" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1018", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossiblyImpureMethodCallOnReadonlyVariable", - "shortDescription": { - "text": "Possibly impure struct method is called on readonly variable: struct value always copied before invocation" - }, - "fullDescription": { - "text": "Possibly impure struct instance method or 'this ref' extension method is called on readonly field/in parameter/ref readonly return: struct value always copied before invocation Learn more...", - "markdown": "Possibly impure struct instance method or 'this ref' extension method is called on readonly field/in parameter/ref readonly return: struct value always copied before invocation [Learn more...](https://www.jetbrains.com/help/rider/PossiblyImpureMethodCallOnReadonlyVariable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossiblyImpureMethodCallOnReadonlyVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1019", - "shortDescription": { - "text": "RoslynAnalyzers Order modifiers" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1019", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecPipe2", - "shortDescription": { - "text": "android-cloexec-pipe2 clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-pipe2 clang-tidy check · Learn more", - "markdown": "android-cloexec-pipe2 clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-pipe2.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecPipe2", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithLastOrDefault.4", - "shortDescription": { - "text": "Replace with LastOrDefault($args$)" - }, - "fullDescription": { - "text": "$expr$ && $seq$.Any($args$) ? $seq$.Last($args$) : default($T$)", - "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Last($args$) : default($T$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithLastOrDefault.4", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1014", - "shortDescription": { - "text": "RoslynAnalyzers Use explicitly/implicitly typed array" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1014", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1015", - "shortDescription": { - "text": "RoslynAnalyzers Use nameof operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1015", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1016", - "shortDescription": { - "text": "RoslynAnalyzers Use block body or expression body" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1016", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUE4CodingStandardUClassNamingViolationError", - "shortDescription": { - "text": "Inconsistent Unreal Engine UCLASS Naming" - }, - "fullDescription": { - "text": "Class is declared with UCLASS or USTRUCT macro but its name doesn't match the Unreal Engine's coding standard naming style; this will lead to a build error. This inspection includes three rules: classes inherited from AActor must be prefixed by 'A', classes inherited from UObject must be prefixed by 'U', and USTRUCTS must be prefixed by 'F'.", - "markdown": "Class is declared with UCLASS or USTRUCT macro but its name doesn't match the Unreal Engine's coding standard naming style; this will lead to a build error. This inspection includes three rules: classes inherited from AActor must be prefixed by 'A', classes inherited from UObject must be prefixed by 'U', and USTRUCTS must be prefixed by 'F'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppUE4CodingStandardUClassNamingViolationError", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftTemplate", - "shortDescription": { - "text": "microsoft-template clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-template clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-template clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-template)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftTemplate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstTryNotSupported", - "shortDescription": { - "text": "Try statement is not supported" - }, - "fullDescription": { - "text": "Try statement is not supported", - "markdown": "Try statement is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstTryNotSupported", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1010", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Use 'var' instead of explicit type (when the type is obvious)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1010", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantEnumCaseLabelForDefaultSection", - "shortDescription": { - "text": "Redundant 'case' label before default section" - }, - "fullDescription": { - "text": "'case' label statement with enum value in front of default section is redundant", - "markdown": "'case' label statement with enum value in front of default section is redundant" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantEnumCaseLabelForDefaultSection", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1012", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Use explicit type instead of 'var' (when the type is obvious)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1012", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1013", - "shortDescription": { - "text": "RoslynAnalyzers Use predefined type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1013", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadParensLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around parenthesis)" - }, - "fullDescription": { - "text": "Around parenthesis", - "markdown": "Around parenthesis" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadParensLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceTypePromotionInMathFn", - "shortDescription": { - "text": "performance-type-promotion-in-math-fn clang-tidy check" - }, - "fullDescription": { - "text": "performance-type-promotion-in-math-fn clang-tidy check · Learn more", - "markdown": "performance-type-promotion-in-math-fn clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/type-promotion-in-math-fn.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceTypePromotionInMathFn", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsequenced", - "shortDescription": { - "text": "unsequenced clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsequenced clang diagnostic · Learn more", - "markdown": "-Wunsequenced clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsequenced)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsequenced", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDuplicateDeclSpecifier", - "shortDescription": { - "text": "duplicate-decl-specifier clang diagnostic" - }, - "fullDescription": { - "text": "-Wduplicate-decl-specifier clang diagnostic · Learn more", - "markdown": "-Wduplicate-decl-specifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wduplicate-decl-specifier)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDuplicateDeclSpecifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadSymbolSpaces", - "shortDescription": { - "text": "Incorrect spacing (around operator symbols)" - }, - "fullDescription": { - "text": "Around operator symbols", - "markdown": "Around operator symbols" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadSymbolSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesExplicitVirtualFunctions", - "shortDescription": { - "text": "cppcoreguidelines-explicit-virtual-functions clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-explicit-virtual-functions clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-explicit-virtual-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/explicit-virtual-functions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesExplicitVirtualFunctions", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ROS0003", - "shortDescription": { - "text": "RoslynAnalyzers Analyzer requires config option to be specified" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ROS0003", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ROS0002", - "shortDescription": { - "text": "RoslynAnalyzers Analyzer option is obsolete" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ROS0002", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Any.2", - "shortDescription": { - "text": "Replace with OfType().Any() (replace with OfType().Any(..))" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Any($y$ => $y$ != null && $expr$)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Any($y$ =\\> $y$ != null \\&\\& $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Any.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VulnerableApi", - "shortDescription": { - "text": "Vulnerable API usage" - }, - "fullDescription": { - "text": "Reports usages of Vulnerable APIs in imported dependencies Learn more...", - "markdown": "Reports usages of Vulnerable APIs in imported dependencies [Learn more...](https://www.jetbrains.com/help/rider/VulnerableApi.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VulnerableApi", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Security", - "index": 87, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithOfType.Any.1", - "shortDescription": { - "text": "Replace with OfType().Any()" - }, - "fullDescription": { - "text": "$seq$.Select($x$ => $x$ as $T$).Any($y$ => $y$ != null)", - "markdown": "$seq$.Select($x$ =\\> $x$ as $T$).Any($y$ =\\> $y$ != null)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithOfType.Any.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleInvalidOperationException", - "shortDescription": { - "text": "Possible 'System.InvalidOperationException'" - }, - "fullDescription": { - "text": "Possible call to method is invalid for the object's current state Learn more...", - "markdown": "Possible call to method is invalid for the object's current state [Learn more...](https://www.jetbrains.com/help/rider/PossibleInvalidOperationException.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleInvalidOperationException", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11NarrowingConstReference", - "shortDescription": { - "text": "c++11-narrowing-const-reference clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-narrowing-const-reference clang diagnostic · Learn more", - "markdown": "-Wc++11-narrowing-const-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-narrowing-const-reference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11NarrowingConstReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIndependentClassAttribute", - "shortDescription": { - "text": "IndependentClass-attribute clang diagnostic" - }, - "fullDescription": { - "text": "-WIndependentClass-attribute clang diagnostic · Learn more", - "markdown": "-WIndependentClass-attribute clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wIndependentClass-attribute)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIndependentClassAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedOfast", - "shortDescription": { - "text": "deprecated-ofast clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-ofast clang diagnostic · Learn more", - "markdown": "-Wdeprecated-ofast clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-ofast)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedOfast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSignedEnumBitfield", - "shortDescription": { - "text": "signed-enum-bitfield clang diagnostic" - }, - "fullDescription": { - "text": "-Wsigned-enum-bitfield clang diagnostic · Learn more", - "markdown": "-Wsigned-enum-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wsigned-enum-bitfield)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSignedEnumBitfield", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeVarKeywordsInDeconstructingDeclaration", - "shortDescription": { - "text": "Join or separate 'var' in deconstruction declarations" - }, - "fullDescription": { - "text": "Use preferred code style to check joined/separate 'var' usages in deconstruction declarations Learn more...", - "markdown": "Use preferred code style to check joined/separate 'var' usages in deconstruction declarations [Learn more...](https://www.jetbrains.com/help/rider/ArrangeVarKeywordsInDeconstructingDeclaration.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeVarKeywordsInDeconstructingDeclaration", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerApiModelingTrustReturnsNonnull", - "shortDescription": { - "text": "apiModeling.TrustReturnsNonnull clang static analyzer check" - }, - "fullDescription": { - "text": "apiModeling.TrustReturnsNonnull clang static analyzer check · Learn more", - "markdown": "apiModeling.TrustReturnsNonnull clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerApiModelingTrustReturnsNonnull", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.InstantiateWithoutParent", - "shortDescription": { - "text": "Setting 'parent' property immediately after object instantiation is inefficient" - }, - "fullDescription": { - "text": "Instantiating a Unity object and setting the 'parent' property as separate operations is inefficient, as the transform hierarchy is created and immediately replaced. Combine setting the 'parent' property with the call to instantiate the object. Learn more...", - "markdown": "Instantiating a Unity object and setting the 'parent' property as separate operations is inefficient, as the transform hierarchy is created and immediately replaced. Combine setting the 'parent' property with the call to instantiate the object. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Avoid-using-Object.Instantiate-without-“Transform-Parent”-parameter-and-using-SetParent-later)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.InstantiateWithoutParent", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShiftSignOverflow", - "shortDescription": { - "text": "shift-sign-overflow clang diagnostic" - }, - "fullDescription": { - "text": "-Wshift-sign-overflow clang diagnostic · Learn more", - "markdown": "-Wshift-sign-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshift-sign-overflow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShiftSignOverflow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShadowFieldInConstructor", - "shortDescription": { - "text": "shadow-field-in-constructor clang diagnostic" - }, - "fullDescription": { - "text": "-Wshadow-field-in-constructor clang diagnostic · Learn more", - "markdown": "-Wshadow-field-in-constructor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-field-in-constructor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShadowFieldInConstructor", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseObjectOrCollectionInitializer", - "shortDescription": { - "text": "Use object or collection initializer when possible" - }, - "fullDescription": { - "text": "Suggest to replace object sequential assignments to newly created object fields by object initializer Learn more...", - "markdown": "Suggest to replace object sequential assignments to newly created object fields by object initializer [Learn more...](https://www.jetbrains.com/help/rider/UseObjectOrCollectionInitializer.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "UseObjectOrCollectionInitializer", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberCanBePrivate.Global", - "shortDescription": { - "text": "Member can be made private (non-private accessibility)" - }, - "fullDescription": { - "text": "Member can be made private Learn more...", - "markdown": "Member can be made private [Learn more...](https://www.jetbrains.com/help/rider/MemberCanBePrivate.Global.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MemberCanBePrivate.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDiscardedPostfixOperatorResult", - "shortDescription": { - "text": "Result of a postfix operator is discarded" - }, - "fullDescription": { - "text": "Result of a postfix operator is discarded. It might be more efficient to use a prefix form of the operator.", - "markdown": "Result of a postfix operator is discarded. It might be more efficient to use a prefix form of the operator." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppDiscardedPostfixOperatorResult", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertInt09C", - "shortDescription": { - "text": "cert-int09-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-int09-c clang-tidy check · Learn more", - "markdown": "cert-int09-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/int09-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertInt09C", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseCollectionCountProperty", - "shortDescription": { - "text": "Use collection's count property" - }, - "fullDescription": { - "text": "Usage of 'Enumerable.Count()' method can be replaced with direct collection count property access Learn more...", - "markdown": "Usage of 'Enumerable.Count()' method can be replaced with direct collection count property access [Learn more...](https://www.jetbrains.com/help/rider/UseCollectionCountProperty.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UseCollectionCountProperty", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPragmaPack", - "shortDescription": { - "text": "pragma-pack clang diagnostic" - }, - "fullDescription": { - "text": "-Wpragma-pack clang diagnostic · Learn more", - "markdown": "-Wpragma-pack clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpragma-pack)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPragmaPack", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleReadabilityTodo", - "shortDescription": { - "text": "google-readability-todo clang-tidy check" - }, - "fullDescription": { - "text": "google-readability-todo clang-tidy check · Learn more", - "markdown": "google-readability-todo clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-todo.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleReadabilityTodo", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedType", - "shortDescription": { - "text": "deprecated-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-type clang diagnostic · Learn more", - "markdown": "-Wdeprecated-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEmptyDeclaration", - "shortDescription": { - "text": "Declaration does not declare anything" - }, - "fullDescription": { - "text": "A declaration does not declare anything", - "markdown": "A declaration does not declare anything" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppEmptyDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStrictPrimaryTemplateShadow", - "shortDescription": { - "text": "strict-primary-template-shadow clang diagnostic" - }, - "fullDescription": { - "text": "-Wstrict-primary-template-shadow clang diagnostic · Learn more", - "markdown": "-Wstrict-primary-template-shadow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstrict-primary-template-shadow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStrictPrimaryTemplateShadow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppIncompatiblePointerConversion", - "shortDescription": { - "text": "Implicit conversion to incompatible pointer type" - }, - "fullDescription": { - "text": "Implicit conversion to incompatible pointer type", - "markdown": "Implicit conversion to incompatible pointer type" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppIncompatiblePointerConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreUninitializedCapturedBlockVariable", - "shortDescription": { - "text": "core.uninitialized.CapturedBlockVariable clang static analyzer check" - }, - "fullDescription": { - "text": "core.uninitialized.CapturedBlockVariable clang static analyzer check · Learn more", - "markdown": "core.uninitialized.CapturedBlockVariable clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedCapturedBlockVariable", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscIncludeCleaner", - "shortDescription": { - "text": "misc-include-cleaner clang-tidy check" - }, - "fullDescription": { - "text": "misc-include-cleaner clang-tidy check · Learn more", - "markdown": "misc-include-cleaner clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/include-cleaner.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscIncludeCleaner", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityAvoidNestedConditionalOperator", - "shortDescription": { - "text": "readability-avoid-nested-conditional-operator clang-tidy check" - }, - "fullDescription": { - "text": "readability-avoid-nested-conditional-operator clang-tidy check · Learn more", - "markdown": "readability-avoid-nested-conditional-operator clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-nested-conditional-operator.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityAvoidNestedConditionalOperator", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStringConversion", - "shortDescription": { - "text": "string-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wstring-conversion clang diagnostic · Learn more", - "markdown": "-Wstring-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStringConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixStream", - "shortDescription": { - "text": "unix.Stream clang static analyzer check" - }, - "fullDescription": { - "text": "unix.Stream clang static analyzer check · Learn more", - "markdown": "unix.Stream clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixStream", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotNullOrRequiredMemberIsNotInitialized", - "shortDescription": { - "text": "Non-nullable or required member is not initialized at constructor exit" - }, - "fullDescription": { - "text": "Non-nullable or required type member is not initialized in any execution path of the constructor Learn more...", - "markdown": "Non-nullable or required type member is not initialized in any execution path of the constructor [Learn more...](https://www.jetbrains.com/help/rider/NotNullOrRequiredMemberIsNotInitialized.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotNullOrRequiredMemberIsNotInitialized", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseUnsignedRightShiftOperator", - "shortDescription": { - "text": "Use unsigned right shift operator '>>>'" - }, - "fullDescription": { - "text": "Use unsigned right shift operator '>>>' instead of manual casting and shifting Learn more...", - "markdown": "Use unsigned right shift operator '\\>\\>\\>' instead of manual casting and shifting [Learn more...](https://www.jetbrains.com/help/rider/UseUnsignedRightShiftOperator.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseUnsignedRightShiftOperator", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedDeclarations", - "shortDescription": { - "text": "deprecated-declarations clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-declarations clang diagnostic · Learn more", - "markdown": "-Wdeprecated-declarations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-declarations)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedDeclarations", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnreachableCodeLoopIncrement", - "shortDescription": { - "text": "unreachable-code-loop-increment clang diagnostic" - }, - "fullDescription": { - "text": "-Wunreachable-code-loop-increment clang diagnostic · Learn more", - "markdown": "-Wunreachable-code-loop-increment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-loop-increment)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeLoopIncrement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Last.1", - "shortDescription": { - "text": "Replace with OfType().Last() (replace with OfType(Of ..)().Last())" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Last.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OneWayOperationContractWithReturnType", - "shortDescription": { - "text": "One way operations must not return values" - }, - "fullDescription": { - "text": "Methods marked with OperationContract attribute as OneWay operations must not return values Learn more...", - "markdown": "Methods marked with OperationContract attribute as OneWay operations must not return values [Learn more...](https://www.jetbrains.com/help/rider/OneWayOperationContractWithReturnType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "OneWayOperationContractWithReturnType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithOfType.Last.2", - "shortDescription": { - "text": "Replace with OfType().Last() (replace with OfType(Of ..)().Last(..))" - }, - "fullDescription": { - "text": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)", - "markdown": "$seq$.Select(Function ($x$) TryCast($x$, $T$)).Last(Function ($y$) $y$ IsNot Nothing AndAlso $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithOfType.Last.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AnnotateCanBeNullTypeMember", - "shortDescription": { - "text": "Declaration nullability inferred (type member is inferred to be nullable)" - }, - "fullDescription": { - "text": "Type member is inferred to be nullable: consider annotating it with [CanBeNull] or [ItemCanBeNull] attribute", - "markdown": "Type member is inferred to be nullable: consider annotating it with \\[CanBeNull\\] or \\[ItemCanBeNull\\] attribute" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AnnotateCanBeNullTypeMember", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseThrowIfNullMethod", - "shortDescription": { - "text": "Use 'ArgumentNullException.ThrowIfNull'" - }, - "fullDescription": { - "text": "Replace throwing of 'ArgumentNullException' object with an invocation of the helper method", - "markdown": "Replace throwing of 'ArgumentNullException' object with an invocation of the helper method" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseThrowIfNullMethod", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToAutoPropertyWhenPossible", - "shortDescription": { - "text": "Convert property into auto-property (when possible)" - }, - "fullDescription": { - "text": "Converts property declaration into C# auto-property syntax", - "markdown": "Converts property declaration into C# auto-property syntax" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToAutoPropertyWhenPossible", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1094", - "shortDescription": { - "text": "RoslynAnalyzers Declare using directive on top level" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1094", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SimplifyStringInterpolation", - "shortDescription": { - "text": "Use format specifier in interpolated strings" - }, - "fullDescription": { - "text": "'.ToString()' call could be replaced with a format specifier Learn more...", - "markdown": "'.ToString()' call could be replaced with a format specifier [Learn more...](https://www.jetbrains.com/help/rider/SimplifyStringInterpolation.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SimplifyStringInterpolation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1096", - "shortDescription": { - "text": "RoslynAnalyzers Use 'HasFlag' method or bitwise operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1096", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1097", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant 'ToString' call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1097", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1090", - "shortDescription": { - "text": "RoslynAnalyzers Add/remove 'ConfigureAwait(false)' call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1090", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1091", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty region" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1091", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1093", - "shortDescription": { - "text": "RoslynAnalyzers File contains no code" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1093", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MoveVariableDeclarationInsideLoopCondition", - "shortDescription": { - "text": "Move variable declaration inside loop condition" - }, - "fullDescription": { - "text": "Declare variable inside a loop condition using pattern matching syntax to reduce its scope and avoid doing a C-style assignment as a side effect", - "markdown": "Declare variable inside a loop condition using pattern matching syntax to reduce its scope and avoid doing a C-style assignment as a side effect" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MoveVariableDeclarationInsideLoopCondition", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuIncludeNext", - "shortDescription": { - "text": "gnu-include-next clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-include-next clang diagnostic · Learn more", - "markdown": "-Wgnu-include-next clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-include-next)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuIncludeNext", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReferenceEqualsWithValueType", - "shortDescription": { - "text": "'Object.ReferenceEquals' is always false because it is called with value type" - }, - "fullDescription": { - "text": "'Object.ReferenceEquals' is always false because it is called with value type", - "markdown": "'Object.ReferenceEquals' is always false because it is called with value type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ReferenceEqualsWithValueType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SimplifyConditionalTernaryExpression", - "shortDescription": { - "text": "Simplify conditional ternary expression" - }, - "fullDescription": { - "text": "Ternary expression contains 'true' or 'false' in result branch, for example \r\n condition ? true : elseBranch\r\n condition ? thenBranch : true\r\n Learn more...", - "markdown": "Ternary expression contains 'true' or 'false' in result branch, for example\n\n```\n\r\n condition ? true : elseBranch\r\n condition ? thenBranch : true\r\n \n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/SimplifyConditionalTernaryExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SimplifyConditionalTernaryExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEmbeddedDirective", - "shortDescription": { - "text": "embedded-directive clang diagnostic" - }, - "fullDescription": { - "text": "-Wembedded-directive clang diagnostic · Learn more", - "markdown": "-Wembedded-directive clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wembedded-directive)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEmbeddedDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinOsxOSObjectCStyleCast", - "shortDescription": { - "text": "optin.osx.OSObjectCStyleCast clang static analyzer check" - }, - "fullDescription": { - "text": "optin.osx.OSObjectCStyleCast clang static analyzer check · Learn more", - "markdown": "optin.osx.OSObjectCStyleCast clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinOsxOSObjectCStyleCast", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1089", - "shortDescription": { - "text": "RoslynAnalyzers Use --/++ operator instead of assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1089", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadAttributeBracketsSpaces", - "shortDescription": { - "text": "Incorrect spacing (around attributes)" - }, - "fullDescription": { - "text": "Around attributes Learn more...", - "markdown": "Around attributes [Learn more...](https://www.jetbrains.com/help/rider/BadAttributeBracketsSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadAttributeBracketsSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Mvc.AreaNotResolved", - "shortDescription": { - "text": "MVC (unknown area)" - }, - "fullDescription": { - "text": "Unknown ASP.NET MVC Area", - "markdown": "Unknown ASP.NET MVC Area" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Mvc.AreaNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1084", - "shortDescription": { - "text": "RoslynAnalyzers Use coalesce expression instead of conditional expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1084", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1085", - "shortDescription": { - "text": "RoslynAnalyzers Use auto-implemented property" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1085", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceImplicitConversionInLoop", - "shortDescription": { - "text": "performance-implicit-conversion-in-loop clang-tidy check" - }, - "fullDescription": { - "text": "performance-implicit-conversion-in-loop clang-tidy check · Learn more", - "markdown": "performance-implicit-conversion-in-loop clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/implicit-conversion-in-loop.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceImplicitConversionInLoop", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1080", - "shortDescription": { - "text": "RoslynAnalyzers Use 'Count/Length' property instead of 'Any' method" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1080", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.ResolveWarning", - "shortDescription": { - "text": "ASP.NET Resolve Warning" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Asp.ResolveWarning", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1081", - "shortDescription": { - "text": "RoslynAnalyzers Split variable declaration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1081", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1021FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Convert lambda expression body to expression body" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1021FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilitySimplifyBooleanExpr", - "shortDescription": { - "text": "readability-simplify-boolean-expr clang-tidy check" - }, - "fullDescription": { - "text": "readability-simplify-boolean-expr clang-tidy check · Learn more", - "markdown": "readability-simplify-boolean-expr clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/simplify-boolean-expr.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilitySimplifyBooleanExpr", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMalformedWarningCheck", - "shortDescription": { - "text": "malformed-warning-check clang diagnostic" - }, - "fullDescription": { - "text": "-Wmalformed-warning-check clang diagnostic · Learn more", - "markdown": "-Wmalformed-warning-check clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmalformed-warning-check)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMalformedWarningCheck", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedAltivecSrcCompat", - "shortDescription": { - "text": "deprecated-altivec-src-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-altivec-src-compat clang diagnostic · Learn more", - "markdown": "-Wdeprecated-altivec-src-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-altivec-src-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedAltivecSrcCompat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExtraSemiStmt", - "shortDescription": { - "text": "extra-semi-stmt clang diagnostic" - }, - "fullDescription": { - "text": "-Wextra-semi-stmt clang diagnostic · Learn more", - "markdown": "-Wextra-semi-stmt clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-semi-stmt)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExtraSemiStmt", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InternalOrPrivateMemberNotDocumented", - "shortDescription": { - "text": "Missing XML comment for private or internal type or member" - }, - "fullDescription": { - "text": "Missing XML comment for private or internal type or member", - "markdown": "Missing XML comment for private or internal type or member" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "InternalOrPrivateMemberNotDocumented", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedConstVariable", - "shortDescription": { - "text": "unused-const-variable clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-const-variable clang diagnostic · Learn more", - "markdown": "-Wunused-const-variable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-const-variable)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedConstVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanSimplifyIsAssignableFrom", - "shortDescription": { - "text": "Simplify 'IsInstanceOfType()' invocation" - }, - "fullDescription": { - "text": "IsInstanceOfType() invocation can be simplified with 'is' operator Learn more...", - "markdown": "IsInstanceOfType() invocation can be simplified with 'is' operator [Learn more...](https://www.jetbrains.com/help/rider/CanSimplifyIsAssignableFrom.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanSimplifyIsAssignableFrom", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPreC11Compat", - "shortDescription": { - "text": "pre-c11-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wpre-c11-compat clang diagnostic · Learn more", - "markdown": "-Wpre-c11-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpre-c11-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPreC11Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IsExpressionAlwaysFalse", - "shortDescription": { - "text": "The expression of 'is' operator is never of the provided type" - }, - "fullDescription": { - "text": "The expression of 'is' operator is never of the provided type", - "markdown": "The expression of 'is' operator is never of the provided type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IsExpressionAlwaysFalse", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDllAttributeOnRedeclaration", - "shortDescription": { - "text": "dll-attribute-on-redeclaration clang diagnostic" - }, - "fullDescription": { - "text": "-Wdll-attribute-on-redeclaration clang diagnostic · Learn more", - "markdown": "-Wdll-attribute-on-redeclaration clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdll-attribute-on-redeclaration)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDllAttributeOnRedeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1077", - "shortDescription": { - "text": "RoslynAnalyzers Optimize LINQ method call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1077", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUENonExistentInputAction", - "shortDescription": { - "text": "Action with this name does not exist" - }, - "fullDescription": { - "text": "Action with this name does not exist", - "markdown": "Action with this name does not exist" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUENonExistentInputAction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1078", - "shortDescription": { - "text": "RoslynAnalyzers Use \"\" or 'string.Empty'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1078", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArcPerformSelectorLeaks", - "shortDescription": { - "text": "arc-performSelector-leaks clang diagnostic" - }, - "fullDescription": { - "text": "-Warc-performSelector-leaks clang diagnostic · Learn more", - "markdown": "-Warc-performSelector-leaks clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-performSelector-leaks)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArcPerformSelectorLeaks", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1079", - "shortDescription": { - "text": "RoslynAnalyzers Throwing of new NotImplementedException" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1079", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeAvoidCArrays", - "shortDescription": { - "text": "modernize-avoid-c-arrays clang-tidy check" - }, - "fullDescription": { - "text": "modernize-avoid-c-arrays clang-tidy check · Learn more", - "markdown": "modernize-avoid-c-arrays clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/avoid-c-arrays.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeAvoidCArrays", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadControlBracesIndent", - "shortDescription": { - "text": "Incorrect indent (around statement braces)" - }, - "fullDescription": { - "text": "Around statement braces", - "markdown": "Around statement braces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadControlBracesIndent", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAnonEnumEnumConversion", - "shortDescription": { - "text": "anon-enum-enum-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wanon-enum-enum-conversion clang diagnostic · Learn more", - "markdown": "-Wanon-enum-enum-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wanon-enum-enum-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAnonEnumEnumConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppCoroutineCallResolveError", - "shortDescription": { - "text": "Cannot resolve a required coroutine function" - }, - "fullDescription": { - "text": "A coroutine-related function which is required by the C++20 standard cannot be resolved", - "markdown": "A coroutine-related function which is required by the C++20 standard cannot be resolved" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppCoroutineCallResolveError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRemoveRedundantBraces", - "shortDescription": { - "text": "Use preferred braces style (remove redundant braces)" - }, - "fullDescription": { - "text": "Braces can be safely removed without changing code semantics", - "markdown": "Braces can be safely removed without changing code semantics" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRemoveRedundantBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDefaultIsUsedAsIdentifier", - "shortDescription": { - "text": "Keyword 'default' is used as identifier" - }, - "fullDescription": { - "text": "'default' is a keyword in the C++ standard and cannot be used as an identifier", - "markdown": "'default' is a keyword in the C++ standard and cannot be used as an identifier" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDefaultIsUsedAsIdentifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompleteUmbrella", - "shortDescription": { - "text": "incomplete-umbrella clang diagnostic" - }, - "fullDescription": { - "text": "-Wincomplete-umbrella clang diagnostic · Learn more", - "markdown": "-Wincomplete-umbrella clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-umbrella)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompleteUmbrella", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArgumentsStyleOther", - "shortDescription": { - "text": "Use preferred argument style" - }, - "fullDescription": { - "text": "Prefer using named/positional argument for all expressions except literal, named and anonymous function Learn more...", - "markdown": "Prefer using named/positional argument for all expressions except literal, named and anonymous function [Learn more...](https://www.jetbrains.com/help/rider/ArgumentsStyleOther.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArgumentsStyleOther", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantDefaultMemberInitializer", - "shortDescription": { - "text": "Redundant member initializer" - }, - "fullDescription": { - "text": "Initializing field/property/event with default value is redundant Learn more...", - "markdown": "Initializing field/property/event with default value is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantDefaultMemberInitializer.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantDefaultMemberInitializer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantXamarinFormsClassDeclaration", - "shortDescription": { - "text": "Resource cannot be accessed by class name because of x:Key attribute" - }, - "fullDescription": { - "text": "Resource cannot be accessed by class name because of x:Key attribute", - "markdown": "Resource cannot be accessed by class name because of x:Key attribute" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantXamarinFormsClassDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedLabel", - "shortDescription": { - "text": "Unused label" - }, - "fullDescription": { - "text": "Label is never referenced", - "markdown": "Label is never referenced" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "UnusedLabel", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedCopy", - "shortDescription": { - "text": "deprecated-copy clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-copy clang diagnostic · Learn more", - "markdown": "-Wdeprecated-copy clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-copy)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedCopy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUESourceFileWithoutStandardLibrary", - "shortDescription": { - "text": "C/C++ standard library headers not found" - }, - "fullDescription": { - "text": "C++ standard library headers cannot be resolved in an Unreal Engine source file. You might need to regenerate the project files.", - "markdown": "C++ standard library headers cannot be resolved in an Unreal Engine source file. You might need to regenerate the project files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppUESourceFileWithoutStandardLibrary", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticHigherPrecisionFp", - "shortDescription": { - "text": "higher-precision-fp clang diagnostic" - }, - "fullDescription": { - "text": "-Whigher-precision-fp clang diagnostic · Learn more", - "markdown": "-Whigher-precision-fp clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#whigher-precision-fp)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticHigherPrecisionFp", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDelegatingCtorCycles", - "shortDescription": { - "text": "delegating-ctor-cycles clang diagnostic" - }, - "fullDescription": { - "text": "-Wdelegating-ctor-cycles clang diagnostic · Learn more", - "markdown": "-Wdelegating-ctor-cycles clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdelegating-ctor-cycles)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDelegatingCtorCycles", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Razor.AssemblyNotResolved", - "shortDescription": { - "text": "Unknown Razor assembly" - }, - "fullDescription": { - "text": "Unknown Razor assembly", - "markdown": "Unknown Razor assembly" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Razor.AssemblyNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Razor/Potential Code Quality Issues", - "index": 93, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeMakeShared", - "shortDescription": { - "text": "modernize-make-shared clang-tidy check" - }, - "fullDescription": { - "text": "modernize-make-shared clang-tidy check · Learn more", - "markdown": "modernize-make-shared clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/make-shared.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeMakeShared", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCompoundTokenSplitBySpace", - "shortDescription": { - "text": "compound-token-split-by-space clang diagnostic" - }, - "fullDescription": { - "text": "-Wcompound-token-split-by-space clang diagnostic · Learn more", - "markdown": "-Wcompound-token-split-by-space clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcompound-token-split-by-space)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCompoundTokenSplitBySpace", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAbstractFinalClass", - "shortDescription": { - "text": "abstract-final-class clang diagnostic" - }, - "fullDescription": { - "text": "-Wabstract-final-class clang diagnostic · Learn more", - "markdown": "-Wabstract-final-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wabstract-final-class)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAbstractFinalClass", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedStringInterpolation", - "shortDescription": { - "text": "Nested string interpolation can be inlined" - }, - "fullDescription": { - "text": "Nested string interpolation can be inlined into containing one", - "markdown": "Nested string interpolation can be inlined into containing one" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NestedStringInterpolation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReadAccessInDoubleCheckLocking", - "shortDescription": { - "text": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field." - }, - "fullDescription": { - "text": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field. Learn more...", - "markdown": "Possible incorrect implementation of Double-Check Locking pattern. Read access to checked field. [Learn more...](https://www.jetbrains.com/help/rider/ReadAccessInDoubleCheckLocking.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ReadAccessInDoubleCheckLocking", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertMsc50Cpp", - "shortDescription": { - "text": "cert-msc50-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-msc50-cpp clang-tidy check · Learn more", - "markdown": "cert-msc50-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/msc50-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertMsc50Cpp", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticLiteralRange", - "shortDescription": { - "text": "literal-range clang diagnostic" - }, - "fullDescription": { - "text": "-Wliteral-range clang diagnostic · Learn more", - "markdown": "-Wliteral-range clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wliteral-range)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticLiteralRange", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TooWideLocalVariableScope", - "shortDescription": { - "text": "Local variable has too wide declaration scope" - }, - "fullDescription": { - "text": "Local variable is declared in a wider scope than the scope of its actual use Learn more...", - "markdown": "Local variable is declared in a wider scope than the scope of its actual use [Learn more...](https://www.jetbrains.com/help/rider/TooWideLocalVariableScope.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "TooWideLocalVariableScope", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUnmatchedPragmaEndRegionDirective", - "shortDescription": { - "text": "Missing a matching '#pragma region' directive" - }, - "fullDescription": { - "text": "A '#pragma endregion' directive is missing a matching '#pragma region' directive", - "markdown": "A '#pragma endregion' directive is missing a matching '#pragma region' directive" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUnmatchedPragmaEndRegionDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AspOdsMethodReferenceResolveError", - "shortDescription": { - "text": "Object data source method resolve problem" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "AspOdsMethodReferenceResolveError", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.RangeToValueIsNotReachable", - "shortDescription": { - "text": "NUnit. The maximum range value is not reachable with the step value." - }, - "fullDescription": { - "text": "NUnit. The maximum value of [Range] is not reachable, check range and step values. Learn more...", - "markdown": "NUnit. The maximum value of \\[Range\\] is not reachable, check range and step values. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.RangeToValueIsNotReachable.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.RangeToValueIsNotReachable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticQualifiedVoidReturnType", - "shortDescription": { - "text": "qualified-void-return-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wqualified-void-return-type clang diagnostic · Learn more", - "markdown": "-Wqualified-void-return-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wqualified-void-return-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticQualifiedVoidReturnType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3001", - "shortDescription": { - "text": "RoslynAnalyzers Review code for SQL injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3001", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1098", - "shortDescription": { - "text": "RoslynAnalyzers Constant values should be placed on right side of comparisons" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1098", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1099", - "shortDescription": { - "text": "RoslynAnalyzers Default label should be the last label in a switch section" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1099", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3002", - "shortDescription": { - "text": "RoslynAnalyzers Review code for XSS vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3002", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStaticFloatInit", - "shortDescription": { - "text": "static-float-init clang diagnostic" - }, - "fullDescription": { - "text": "-Wstatic-float-init clang diagnostic · Learn more", - "markdown": "-Wstatic-float-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-float-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStaticFloatInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3003", - "shortDescription": { - "text": "RoslynAnalyzers Review code for file path injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3003", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Web.MappedPath", - "shortDescription": { - "text": "Mapped path" - }, - "fullDescription": { - "text": "Path is mapped to a different path in project settings", - "markdown": "Path is mapped to a different path in project settings" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Web.MappedPath", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Code Notification", - "index": 94, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3004", - "shortDescription": { - "text": "RoslynAnalyzers Review code for information disclosure vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3004", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3005", - "shortDescription": { - "text": "RoslynAnalyzers Review code for LDAP injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3005", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1050", - "shortDescription": { - "text": "RoslynAnalyzers Include/omit parentheses when creating new object" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1050", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1051", - "shortDescription": { - "text": "RoslynAnalyzers Add/remove parentheses from condition in conditional operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1051", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3006", - "shortDescription": { - "text": "RoslynAnalyzers Review code for process command injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3006", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3007", - "shortDescription": { - "text": "RoslynAnalyzers Review code for open redirect vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3007", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1052", - "shortDescription": { - "text": "RoslynAnalyzers Declare each attribute separately" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1052", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertErr33C", - "shortDescription": { - "text": "cert-err33-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-err33-c clang-tidy check · Learn more", - "markdown": "cert-err33-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err33-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCertErr33C", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3008", - "shortDescription": { - "text": "RoslynAnalyzers Review code for XPath injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3008", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneNarrowingConversions", - "shortDescription": { - "text": "bugprone-narrowing-conversions clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-narrowing-conversions clang-tidy check · Learn more", - "markdown": "bugprone-narrowing-conversions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/narrowing-conversions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneNarrowingConversions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3009", - "shortDescription": { - "text": "RoslynAnalyzers Review code for XML injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3009", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadBracesSpaces", - "shortDescription": { - "text": "Incorrect spacing (around braces)" - }, - "fullDescription": { - "text": "Around braces Learn more...", - "markdown": "Around braces [Learn more...](https://www.jetbrains.com/help/rider/BadBracesSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadBracesSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertErr60Cpp", - "shortDescription": { - "text": "cert-err60-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-err60-cpp clang-tidy check · Learn more", - "markdown": "cert-err60-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err60-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCertErr60Cpp", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanReplaceCastWithTypeArgument", - "shortDescription": { - "text": "Cast expression can be replaced with explicit type arguments" - }, - "fullDescription": { - "text": "Replace cast expression with explicit type arguments to enhance compile-time safety Learn more...", - "markdown": "Replace cast expression with explicit type arguments to enhance compile-time safety [Learn more...](https://www.jetbrains.com/help/rider/CanReplaceCastWithTypeArgument.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanReplaceCastWithTypeArgument", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceSliceWithRangeIndexer", - "shortDescription": { - "text": "Replace 'Slice' with range indexer" - }, - "fullDescription": { - "text": "Replace 'Slice' method call with range indexer access", - "markdown": "Replace 'Slice' method call with range indexer access" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceSliceWithRangeIndexer", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1047", - "shortDescription": { - "text": "RoslynAnalyzers Non-asynchronous method name should not end with 'Async'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1047", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1048", - "shortDescription": { - "text": "RoslynAnalyzers Use lambda expression instead of anonymous method" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1048", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3010", - "shortDescription": { - "text": "RoslynAnalyzers Review code for XAML injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3010", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1049", - "shortDescription": { - "text": "RoslynAnalyzers Simplify boolean comparison" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1049", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3011", - "shortDescription": { - "text": "RoslynAnalyzers Review code for DLL injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3011", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1043", - "shortDescription": { - "text": "RoslynAnalyzers Remove 'partial' modifier from type with a single part" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1043", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3012", - "shortDescription": { - "text": "RoslynAnalyzers Review code for regex injection vulnerabilities" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CA3012", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1044", - "shortDescription": { - "text": "RoslynAnalyzers Remove original exception from throw statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1044", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantPropertyPatternClause", - "shortDescription": { - "text": "Redundant property pattern clause" - }, - "fullDescription": { - "text": "Empty property pattern clause can be omitted", - "markdown": "Empty property pattern clause can be omitted" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantPropertyPatternClause", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1046", - "shortDescription": { - "text": "RoslynAnalyzers Asynchronous method name should end with 'Async'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1046", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1040", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty 'else' clause" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1040", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1041", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty initializer" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1041", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1042", - "shortDescription": { - "text": "RoslynAnalyzers Remove enum default underlying type" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1042", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerUnixCstringBadSizeArg", - "shortDescription": { - "text": "unix.cstring.BadSizeArg clang static analyzer check" - }, - "fullDescription": { - "text": "unix.cstring.BadSizeArg clang static analyzer check · Learn more", - "markdown": "unix.cstring.BadSizeArg clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerUnixCstringBadSizeArg", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftMutableReference", - "shortDescription": { - "text": "microsoft-mutable-reference clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-mutable-reference clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-mutable-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-mutable-reference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftMutableReference", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRewriteNotBool", - "shortDescription": { - "text": "rewrite-not-bool clang diagnostic" - }, - "fullDescription": { - "text": "-Wrewrite-not-bool clang diagnostic · Learn more", - "markdown": "-Wrewrite-not-bool clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrewrite-not-bool)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRewriteNotBool", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppParameterMayBeConst", - "shortDescription": { - "text": "Parameter can be made const" - }, - "fullDescription": { - "text": "Parameter can be made const Learn more...", - "markdown": "Parameter can be made const [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rconst-immutable)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppParameterMayBeConst", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadParensLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around parenthesis)" - }, - "fullDescription": { - "text": "Around parenthesis Learn more...", - "markdown": "Around parenthesis [Learn more...](https://www.jetbrains.com/help/rider/BadParensLineBreaks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadParensLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPaddedBitfield", - "shortDescription": { - "text": "padded-bitfield clang diagnostic" - }, - "fullDescription": { - "text": "-Wpadded-bitfield clang diagnostic · Learn more", - "markdown": "-Wpadded-bitfield clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpadded-bitfield)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPaddedBitfield", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityFunctionCognitiveComplexity", - "shortDescription": { - "text": "readability-function-cognitive-complexity clang-tidy check" - }, - "fullDescription": { - "text": "readability-function-cognitive-complexity clang-tidy check · Learn more", - "markdown": "readability-function-cognitive-complexity clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/function-cognitive-complexity.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityFunctionCognitiveComplexity", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppIncompleteSwitchStatement", - "shortDescription": { - "text": "Possibly erroneous incomplete switch-statement" - }, - "fullDescription": { - "text": "The switch statement doesn't cover the whole range of the enumeration used", - "markdown": "The switch statement doesn't cover the whole range of the enumeration used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppIncompleteSwitchStatement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPortabilityRestrictSystemIncludes", - "shortDescription": { - "text": "portability-restrict-system-includes clang-tidy check" - }, - "fullDescription": { - "text": "portability-restrict-system-includes clang-tidy check · Learn more", - "markdown": "portability-restrict-system-includes clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/portability/restrict-system-includes.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPortabilityRestrictSystemIncludes", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AssignmentInConditionalExpression", - "shortDescription": { - "text": "Assignment in conditional expression" - }, - "fullDescription": { - "text": "Assignment in conditional expression; did you mean to use '==' instead of '='? Learn more...", - "markdown": "Assignment in conditional expression; did you mean to use '==' instead of '='? [Learn more...](https://www.jetbrains.com/help/rider/AssignmentInConditionalExpression.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AssignmentInConditionalExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.TypeNotResolved", - "shortDescription": { - "text": "Cannot resolve symbol" - }, - "fullDescription": { - "text": "Cannot resolve symbol", - "markdown": "Cannot resolve symbol" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.TypeNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Potential Code Quality Issues", - "index": 82, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerNullabilityNullableReturnedFromNonnull", - "shortDescription": { - "text": "nullability.NullableReturnedFromNonnull clang static analyzer check" - }, - "fullDescription": { - "text": "nullability.NullableReturnedFromNonnull clang static analyzer check · Learn more", - "markdown": "nullability.NullableReturnedFromNonnull clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerNullabilityNullableReturnedFromNonnull", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1036", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove unnecessary blank line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1036", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1037", - "shortDescription": { - "text": "RoslynAnalyzers Remove trailing white-space" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1037", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1038", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1038", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1039", - "shortDescription": { - "text": "RoslynAnalyzers Remove argument list from attribute" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1039", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1032", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant parentheses" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1032", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1033", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant boolean literal" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1033", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1034", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant 'sealed' modifier" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1034", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1035", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove redundant comma in initializer" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1035", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA1200", - "shortDescription": { - "text": "RoslynAnalyzers Avoid using cref tags with a prefix" - }, - "fullDescription": { - "text": "Use of cref tags with prefixes should be avoided, since it prevents the compiler from verifying references and the IDE from updating references during refactorings. It is permissible to suppress this error at a single documentation site if the cref must use a prefix because the type being mentioned is not findable by the compiler. For example, if a cref is mentioning a special attribute in the full framework but you're in a file that compiles against the portable framework, or if you want to reference a type at higher layer of Roslyn, you should suppress the error. You should not suppress the error just because you want to take a shortcut and avoid using the full syntax.", - "markdown": "Use of cref tags with prefixes should be avoided, since it prevents the compiler from verifying references and the IDE from updating references during refactorings. It is permissible to suppress this error at a single documentation site if the cref must use a prefix because the type being mentioned is not findable by the compiler. For example, if a cref is mentioning a special attribute in the full framework but you're in a file that compiles against the portable framework, or if you want to reference a type at higher layer of Roslyn, you should suppress the error. You should not suppress the error just because you want to take a shortcut and avoid using the full syntax." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA1200", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1072", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty namespace declaration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1072", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1073", - "shortDescription": { - "text": "RoslynAnalyzers Convert 'if' to 'return' statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1073", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1074", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant constructor" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1074", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1075", - "shortDescription": { - "text": "RoslynAnalyzers Avoid empty catch clause that catches System.Exception" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1075", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticKeywordCompat", - "shortDescription": { - "text": "keyword-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wkeyword-compat clang diagnostic · Learn more", - "markdown": "-Wkeyword-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wkeyword-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticKeywordCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1070", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant default switch section" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1070", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIntegerOverflow", - "shortDescription": { - "text": "integer-overflow clang diagnostic" - }, - "fullDescription": { - "text": "-Winteger-overflow clang diagnostic · Learn more", - "markdown": "-Winteger-overflow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winteger-overflow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIntegerOverflow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1071", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant base constructor call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1071", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDocumentationDeprecatedSync", - "shortDescription": { - "text": "documentation-deprecated-sync clang diagnostic" - }, - "fullDescription": { - "text": "-Wdocumentation-deprecated-sync clang diagnostic · Learn more", - "markdown": "-Wdocumentation-deprecated-sync clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdocumentation-deprecated-sync)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDocumentationDeprecatedSync", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExpansionToDefined", - "shortDescription": { - "text": "expansion-to-defined clang diagnostic" - }, - "fullDescription": { - "text": "-Wexpansion-to-defined clang diagnostic · Learn more", - "markdown": "-Wexpansion-to-defined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexpansion-to-defined)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExpansionToDefined", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDllimportStaticFieldDef", - "shortDescription": { - "text": "dllimport-static-field-def clang diagnostic" - }, - "fullDescription": { - "text": "-Wdllimport-static-field-def clang diagnostic · Learn more", - "markdown": "-Wdllimport-static-field-def clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdllimport-static-field-def)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDllimportStaticFieldDef", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.ExpectedComponent", - "shortDescription": { - "text": "Expected a type derived from 'Component' or 'MonoBehaviour'" - }, - "fullDescription": { - "text": "A built-in type derived from 'Component' or a user-defined type derived from 'MonoBehaviour' is expected", - "markdown": "A built-in type derived from 'Component' or a user-defined type derived from 'MonoBehaviour' is expected" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.ExpectedComponent", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpRedundantNew", - "shortDescription": { - "text": "Redundant 'new' keyword" - }, - "fullDescription": { - "text": "'new' keyword is not required and can be safely removed.", - "markdown": "'new' keyword is not required and can be safely removed." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FSharpRedundantNew", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SwapViaDeconstruction", - "shortDescription": { - "text": "Use deconstruction to swap variables" - }, - "fullDescription": { - "text": "Replace multiple assignments with single deconstructing assignment to perform swapping", - "markdown": "Replace multiple assignments with single deconstructing assignment to perform swapping" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SwapViaDeconstruction", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RemoveConstructorInvocation", - "shortDescription": { - "text": "Remove constructor invocation" - }, - "fullDescription": { - "text": "new List<$T$>($seq$).ToArray()", - "markdown": "new List\\<$T$\\>($seq$).ToArray()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RemoveConstructorInvocation", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1069", - "shortDescription": { - "text": "RoslynAnalyzers Remove unnecessary case label" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1069", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.CompiledBindingMissingDataTypeErrorHighlighting", - "shortDescription": { - "text": "x:DataType not specified for CompiledBinding" - }, - "fullDescription": { - "text": "x:DataType not specified for CompiledBinding", - "markdown": "x:DataType not specified for CompiledBinding" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Xaml.CompiledBindingMissingDataTypeErrorHighlighting", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Code Notification", - "index": 5, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InlineOutVariableDeclaration", - "shortDescription": { - "text": "Inline 'out' variable declaration" - }, - "fullDescription": { - "text": "Replace ordinary variable declaration with inline variable declaration under 'out' argument Learn more...", - "markdown": "Replace ordinary variable declaration with inline variable declaration under 'out' argument [Learn more...](https://www.jetbrains.com/help/rider/InlineOutVariableDeclaration.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "InlineOutVariableDeclaration", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1065", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Avoid usage of while statement to create an infinite loop" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1065", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1066", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty 'finally' clause" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1066", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1068", - "shortDescription": { - "text": "RoslynAnalyzers Simplify logical negation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1068", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertErr34C", - "shortDescription": { - "text": "cert-err34-c clang-tidy check" - }, - "fullDescription": { - "text": "cert-err34-c clang-tidy check · Learn more", - "markdown": "cert-err34-c clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/err34-c.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCertErr34C", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1061", - "shortDescription": { - "text": "RoslynAnalyzers Merge 'if' with nested 'if'" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1061", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleCallToFirstOrDefault", - "shortDescription": { - "text": "Replace with single call to FirstOrDefault(..)" - }, - "fullDescription": { - "text": "$seq$.Where(Function ($x$) $expr$).FirstOrDefault()", - "markdown": "$seq$.Where(Function ($x$) $expr$).FirstOrDefault()" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleCallToFirstOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1063", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Avoid usage of do statement to create an infinite loop" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1063", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1064", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Avoid usage of for statement to create an infinite loop" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1064", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1060", - "shortDescription": { - "text": "RoslynAnalyzers Declare each type in separate file" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1060", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VirtualMemberCallInConstructor", - "shortDescription": { - "text": "Virtual member call in constructor" - }, - "fullDescription": { - "text": "When a virtual method is called, the actual type that executes the method is not selected until run time. When a constructor calls a virtual method, it is possible that the constructor for the instance that invokes the method has not executed. See http://msdn2.microsoft.com/en-us/library/ms182331.aspx. Learn more...", - "markdown": "When a virtual method is called, the actual type that executes the method is not selected until run time. When a constructor calls a virtual method, it is possible that the constructor for the instance that invokes the method has not executed. See . [Learn more...](https://www.jetbrains.com/help/rider/VirtualMemberCallInConstructor.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VirtualMemberCallInConstructor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98Cpp11Compat", - "shortDescription": { - "text": "c++98-c++11-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-c++11-compat clang diagnostic · Learn more", - "markdown": "-Wc++98-c++11-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-c-11-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98Cpp11Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnreachableCodeBreak", - "shortDescription": { - "text": "unreachable-code-break clang diagnostic" - }, - "fullDescription": { - "text": "-Wunreachable-code-break clang diagnostic · Learn more", - "markdown": "-Wunreachable-code-break clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunreachable-code-break)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnreachableCodeBreak", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FSharpDotLambdaCanBeUsed", - "shortDescription": { - "text": "Shorthand lambda can be used" - }, - "fullDescription": { - "text": "Shorthand lambda can be used", - "markdown": "Shorthand lambda can be used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FSharpDotLambdaCanBeUsed", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "F#/Redundancies in Code", - "index": 73, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AddressOfMarshalByRefObject", - "shortDescription": { - "text": "Captured field reference of a marshal-by-reference class may cause a runtime exception" - }, - "fullDescription": { - "text": "Captured field reference of a marshal-by-reference class may cause a runtime exception", - "markdown": "Captured field reference of a marshal-by-reference class may cause a runtime exception" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AddressOfMarshalByRefObject", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AnnotationRedundancyAtValueType", - "shortDescription": { - "text": "Nullability attribute usage with declaration of void or value type" - }, - "fullDescription": { - "text": "Nullability attribute usage with declaration of void or value type does not affect code analysis Learn more...", - "markdown": "Nullability attribute usage with declaration of void or value type does not affect code analysis [Learn more...](https://www.jetbrains.com/help/rider/AnnotationRedundancyAtValueType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AnnotationRedundancyAtValueType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ClearAttributeIsObsolete", - "shortDescription": { - "text": "Obsolete tags and attributes (attribute 'clear' is obsolete)" - }, - "fullDescription": { - "text": "<$tag$ ([)clear=\"$val$\"(]) $a1$>", - "markdown": "\\<$tag$ (\\[)clear=\"$val$\"(\\]) $a1$\\>" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ClearAttributeIsObsolete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Common Practices and Code Improvements", - "index": 74, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantExplicitPositionalPropertyDeclaration", - "shortDescription": { - "text": "Redundant explicit positional property declaration" - }, - "fullDescription": { - "text": "Redundant explicit positional property declaration in record type with primary constructor", - "markdown": "Redundant explicit positional property declaration in record type with primary constructor" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantExplicitPositionalPropertyDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1058", - "shortDescription": { - "text": "RoslynAnalyzers Use compound assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1058", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1059", - "shortDescription": { - "text": "RoslynAnalyzers Avoid locking on publicly accessible instance" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1059", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OperationContractWithoutServiceContract", - "shortDescription": { - "text": "Method is marked as OperationContract but containing type is not marked as ServiceContract" - }, - "fullDescription": { - "text": "Marking method as OperationContract without ServiceContract attribute on the containing type could cause runtime exception", - "markdown": "Marking method as OperationContract without ServiceContract attribute on the containing type could cause runtime exception" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "OperationContractWithoutServiceContract", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1055", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary semicolon at the end of declaration" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1055", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1056", - "shortDescription": { - "text": "RoslynAnalyzers Avoid usage of using alias directive" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1056", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadSquareBracketsSpaces", - "shortDescription": { - "text": "Incorrect spacing (around square brackets within a statement)" - }, - "fullDescription": { - "text": "Around square brackets within a statement Learn more...", - "markdown": "Around square brackets within a statement [Learn more...](https://www.jetbrains.com/help/rider/BadSquareBracketsSpaces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadSquareBracketsSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedMethodReturnValue.Global", - "shortDescription": { - "text": "Method return value is never used (non-private accessibility)" - }, - "fullDescription": { - "text": "Method return value is never used Learn more...", - "markdown": "Method return value is never used [Learn more...](https://www.jetbrains.com/help/rider/UnusedMethodReturnValue.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UnusedMethodReturnValue.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticFormatTruncationNonKprintf", - "shortDescription": { - "text": "format-truncation-non-kprintf clang diagnostic" - }, - "fullDescription": { - "text": "-Wformat-truncation-non-kprintf clang diagnostic · Learn more", - "markdown": "-Wformat-truncation-non-kprintf clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wformat-truncation-non-kprintf)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticFormatTruncationNonKprintf", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidConstexpr", - "shortDescription": { - "text": "invalid-constexpr clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-constexpr clang diagnostic · Learn more", - "markdown": "-Winvalid-constexpr clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-constexpr)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidConstexpr", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ClearAttributeIsObsolete.All", - "shortDescription": { - "text": "Obsolete tags and attributes (attribute 'clear' is obsolete)" - }, - "fullDescription": { - "text": "<$tag$ ([)clear=all(]) $a1$>", - "markdown": "\\<$tag$ (\\[)clear=all(\\]) $a1$\\>" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ClearAttributeIsObsolete.All", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Common Practices and Code Improvements", - "index": 74, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyObjcMissingHash", - "shortDescription": { - "text": "objc-missing-hash clang-tidy check" - }, - "fullDescription": { - "text": "objc-missing-hash clang-tidy check · Learn more", - "markdown": "objc-missing-hash clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/objc/missing-hash.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyObjcMissingHash", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnreachableSwitchArmDueToIntegerAnalysis", - "shortDescription": { - "text": "Heuristically unreachable switch arm according to integer analysis" - }, - "fullDescription": { - "text": "Heuristically unreachable switch arm according to integer analysis Learn more...", - "markdown": "Heuristically unreachable switch arm according to integer analysis [Learn more...](https://www.jetbrains.com/help/rider/UnreachableSwitchArmDueToIntegerAnalysis.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnreachableSwitchArmDueToIntegerAnalysis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingDeclarations", - "shortDescription": { - "text": "missing-declarations clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-declarations clang diagnostic · Learn more", - "markdown": "-Wmissing-declarations clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-declarations)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingDeclarations", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EnforceDoWhileStatementBraces", - "shortDescription": { - "text": "Use preferred braces style (enforce braces in 'do-while' statement)" - }, - "fullDescription": { - "text": "Use braces to separate 'do-while' statement body Learn more...", - "markdown": "Use braces to separate 'do-while' statement body [Learn more...](https://www.jetbrains.com/help/rider/EnforceDoWhileStatementBraces.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EnforceDoWhileStatementBraces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppWrongSlashesInIncludeDirective", - "shortDescription": { - "text": "Use preferred include directive style (slash symbol used in #include directive does not match code style settings)" - }, - "fullDescription": { - "text": "Slash symbol used in #include directive does not match code style settings", - "markdown": "Slash symbol used in #include directive does not match code style settings" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppWrongSlashesInIncludeDirective", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PropertyCanBeMadeInitOnly.Global", - "shortDescription": { - "text": "Property can be made init-only (non-private accessibility)" - }, - "fullDescription": { - "text": "Property setter can be replaced with 'init' accessor to enforce property immutability Learn more...", - "markdown": "Property setter can be replaced with 'init' accessor to enforce property immutability [Learn more...](https://www.jetbrains.com/help/rider/PropertyCanBeMadeInitOnly.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "PropertyCanBeMadeInitOnly.Global", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseWithExpressionToCopyTuple", - "shortDescription": { - "text": "Use 'with' expression to copy tuple" - }, - "fullDescription": { - "text": "Use 'with' expression to create a modified copy of a tuple", - "markdown": "Use 'with' expression to create a modified copy of a tuple" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseWithExpressionToCopyTuple", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantPreprocessor", - "shortDescription": { - "text": "readability-redundant-preprocessor clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-preprocessor clang-tidy check · Learn more", - "markdown": "readability-redundant-preprocessor clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-preprocessor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantPreprocessor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuggestVarOrType_SimpleTypes", - "shortDescription": { - "text": "Use preferred 'var' style (when type is simple)" - }, - "fullDescription": { - "text": "Convert if simple type (not an array and does not have generic parameters) Learn more...", - "markdown": "Convert if simple type (not an array and does not have generic parameters) [Learn more...](https://www.jetbrains.com/help/rider/SuggestVarOrType_SimpleTypes.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SuggestVarOrType_SimpleTypes", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS8305", - "shortDescription": { - "text": "Type is for evaluation purposes only and is subject to change or removal in future updates." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS8305", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InParameterWithMustDisposeResourceAttribute", - "shortDescription": { - "text": "Meaningless [MustDisposeResource] annotation for an input parameter" - }, - "fullDescription": { - "text": "Meaningless [MustDisposeResource] annotation for an input parameter", - "markdown": "Meaningless \\[MustDisposeResource\\] annotation for an input parameter" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "InParameterWithMustDisposeResourceAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantQualifier", - "shortDescription": { - "text": "Redundant qualifier" - }, - "fullDescription": { - "text": "Qualifier is redundant", - "markdown": "Qualifier is redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantQualifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3061", - "shortDescription": { - "text": "RoslynAnalyzers Do Not Add Schema By URL" - }, - "fullDescription": { - "text": "This overload of XmlSchemaCollection.Add method internally enables DTD processing on the XML reader instance used, and uses UrlResolver for resolving external XML entities. The outcome is information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector.", - "markdown": "This overload of XmlSchemaCollection.Add method internally enables DTD processing on the XML reader instance used, and uses UrlResolver for resolving external XML entities. The outcome is information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA3061", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.RedundantGridSpan", - "shortDescription": { - "text": "Single-cell grid column/row span is redundant" - }, - "fullDescription": { - "text": "Single-cell grid column/row span is redundant", - "markdown": "Single-cell grid column/row span is redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.RedundantGridSpan", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Redundancies in Code", - "index": 77, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceOverridingFunctionStyle", - "shortDescription": { - "text": "Use preferred overriding function style (enforce overriding function style)" - }, - "fullDescription": { - "text": "Enforce the 'virtual' and 'override' specifiers on overriding functions", - "markdown": "Enforce the 'virtual' and 'override' specifiers on overriding functions" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceOverridingFunctionStyle", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerDeadcodeDeadStores", - "shortDescription": { - "text": "deadcode.DeadStores clang static analyzer check" - }, - "fullDescription": { - "text": "deadcode.DeadStores clang static analyzer check · Learn more", - "markdown": "deadcode.DeadStores clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerDeadcodeDeadStores", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCtadMaybeUnsupported", - "shortDescription": { - "text": "ctad-maybe-unsupported clang diagnostic" - }, - "fullDescription": { - "text": "-Wctad-maybe-unsupported clang diagnostic · Learn more", - "markdown": "-Wctad-maybe-unsupported clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wctad-maybe-unsupported)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCtadMaybeUnsupported", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInlineAsm", - "shortDescription": { - "text": "inline-asm clang diagnostic" - }, - "fullDescription": { - "text": "-Winline-asm clang diagnostic · Learn more", - "markdown": "-Winline-asm clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winline-asm)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInlineAsm", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AnnotateNotNullParameter", - "shortDescription": { - "text": "Declaration nullability inferred (parameter is inferred to be not null)" - }, - "fullDescription": { - "text": "Parameter is inferred always not to be null: consider annotating it with [NotNull] or [ItemNotNull] attribute", - "markdown": "Parameter is inferred always not to be null: consider annotating it with \\[NotNull\\] or \\[ItemNotNull\\] attribute" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AnnotateNotNullParameter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeThisQualifier", - "shortDescription": { - "text": "Add/remove 'this.' qualifier" - }, - "fullDescription": { - "text": "'this.' qualifier can be safely added/removed without changing code semantics Learn more...", - "markdown": "'this.' qualifier can be safely added/removed without changing code semantics [Learn more...](https://www.jetbrains.com/help/rider/ArrangeThisQualifier.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeThisQualifier", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArcRetainCycles", - "shortDescription": { - "text": "arc-retain-cycles clang diagnostic" - }, - "fullDescription": { - "text": "-Warc-retain-cycles clang diagnostic · Learn more", - "markdown": "-Warc-retain-cycles clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-retain-cycles)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArcRetainCycles", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppNewDeleteOperators", - "shortDescription": { - "text": "hicpp-new-delete-operators clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-new-delete-operators clang-tidy check · Learn more", - "markdown": "hicpp-new-delete-operators clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/new-delete-operators.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppNewDeleteOperators", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecurityPutenvStackArray", - "shortDescription": { - "text": "security.PutenvStackArray clang static analyzer check" - }, - "fullDescription": { - "text": "security.PutenvStackArray clang static analyzer check · Learn more", - "markdown": "security.PutenvStackArray clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecurityPutenvStackArray", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseUsing", - "shortDescription": { - "text": "modernize-use-using clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-using clang-tidy check · Learn more", - "markdown": "modernize-use-using clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-using.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseUsing", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneTooSmallLoopVariable", - "shortDescription": { - "text": "bugprone-too-small-loop-variable clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-too-small-loop-variable clang-tidy check · Learn more", - "markdown": "bugprone-too-small-loop-variable clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/too-small-loop-variable.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneTooSmallLoopVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscNonPrivateMemberVariablesInClasses", - "shortDescription": { - "text": "misc-non-private-member-variables-in-classes clang-tidy check" - }, - "fullDescription": { - "text": "misc-non-private-member-variables-in-classes clang-tidy check · Learn more", - "markdown": "misc-non-private-member-variables-in-classes clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/non-private-member-variables-in-classes.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscNonPrivateMemberVariablesInClasses", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticXorUsedAsPow", - "shortDescription": { - "text": "xor-used-as-pow clang diagnostic" - }, - "fullDescription": { - "text": "-Wxor-used-as-pow clang diagnostic · Learn more", - "markdown": "-Wxor-used-as-pow clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wxor-used-as-pow)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticXorUsedAsPow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityIdentifierLength", - "shortDescription": { - "text": "readability-identifier-length clang-tidy check" - }, - "fullDescription": { - "text": "readability-identifier-length clang-tidy check · Learn more", - "markdown": "readability-identifier-length clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/identifier-length.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityIdentifierLength", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftRedeclareStatic", - "shortDescription": { - "text": "microsoft-redeclare-static clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-redeclare-static clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-redeclare-static clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-redeclare-static)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftRedeclareStatic", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantExplicitArraySize", - "shortDescription": { - "text": "Redundant explicit size specification in array creation" - }, - "fullDescription": { - "text": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant Learn more...", - "markdown": "When array initializer has the same number of elements as specified in size expression, explicit size specification is redundant [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitArraySize.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantExplicitArraySize", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityAvoidReturnWithVoidValue", - "shortDescription": { - "text": "readability-avoid-return-with-void-value clang-tidy check" - }, - "fullDescription": { - "text": "readability-avoid-return-with-void-value clang-tidy check · Learn more", - "markdown": "readability-avoid-return-with-void-value clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-return-with-void-value.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityAvoidReturnWithVoidValue", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNonPowerOfTwoAlignment", - "shortDescription": { - "text": "non-power-of-two-alignment clang diagnostic" - }, - "fullDescription": { - "text": "-Wnon-power-of-two-alignment clang diagnostic · Learn more", - "markdown": "-Wnon-power-of-two-alignment clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnon-power-of-two-alignment)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNonPowerOfTwoAlignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CanReplaceCastWithShorterTypeArgument", - "shortDescription": { - "text": "Cast expression can be replaced with simplified type arguments" - }, - "fullDescription": { - "text": "Replace cast expression with simplified type arguments to enhance compile-time safety and code conciseness Learn more...", - "markdown": "Replace cast expression with simplified type arguments to enhance compile-time safety and code conciseness [Learn more...](https://www.jetbrains.com/help/rider/CanReplaceCastWithShorterTypeArgument.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CanReplaceCastWithShorterTypeArgument", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FunctionComplexityOverflow", - "shortDescription": { - "text": "Function body is too complex to analyze" - }, - "fullDescription": { - "text": "Function body is too complex to analyze, consider decomposing it or reducing number of variables", - "markdown": "Function body is too complex to analyze, consider decomposing it or reducing number of variables" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "FunctionComplexityOverflow", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDoublePromotion", - "shortDescription": { - "text": "double-promotion clang diagnostic" - }, - "fullDescription": { - "text": "-Wdouble-promotion clang diagnostic · Learn more", - "markdown": "-Wdouble-promotion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdouble-promotion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDoublePromotion", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3075", - "shortDescription": { - "text": "RoslynAnalyzers Insecure DTD processing in XML" - }, - "fullDescription": { - "text": "Using XmlTextReader.Load(), creating an insecure XmlReaderSettings instance when invoking XmlReader.Create(), setting the InnerXml property of the XmlDocument and enabling DTD processing using XmlUrlResolver insecurely can lead to information disclosure. Replace it with a call to the Load() method overload that takes an XmlReader instance, use XmlReader.Create() to accept XmlReaderSettings arguments or consider explicitly setting secure values. The DataViewSettingCollectionString property of DataViewManager should always be assigned from a trusted source, the DtdProcessing property should be set to false, and the XmlResolver property should be changed to XmlSecureResolver or null.", - "markdown": "Using XmlTextReader.Load(), creating an insecure XmlReaderSettings instance when invoking XmlReader.Create(), setting the InnerXml property of the XmlDocument and enabling DTD processing using XmlUrlResolver insecurely can lead to information disclosure. Replace it with a call to the Load() method overload that takes an XmlReader instance, use XmlReader.Create() to accept XmlReaderSettings arguments or consider explicitly setting secure values. The DataViewSettingCollectionString property of DataViewManager should always be assigned from a trusted source, the DtdProcessing property should be set to false, and the XmlResolver property should be changed to XmlSecureResolver or null." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA3075", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3076", - "shortDescription": { - "text": "RoslynAnalyzers Insecure XSLT script processing" - }, - "fullDescription": { - "text": "Providing an insecure XsltSettings instance and an insecure XmlResolver instance to XslCompiledTransform.Load method is potentially unsafe as it allows processing script within XSL, which on an untrusted XSL input may lead to malicious code execution. Either replace the insecure XsltSettings argument with XsltSettings.Default or an instance that has disabled document function and script execution, or replace the XmlResolver argument with null or an XmlSecureResolver instance. This message may be suppressed if the input is known to be from a trusted source and external resource resolution from locations that are not known in advance must be supported.", - "markdown": "Providing an insecure XsltSettings instance and an insecure XmlResolver instance to XslCompiledTransform.Load method is potentially unsafe as it allows processing script within XSL, which on an untrusted XSL input may lead to malicious code execution. Either replace the insecure XsltSettings argument with XsltSettings.Default or an instance that has disabled document function and script execution, or replace the XmlResolver argument with null or an XmlSecureResolver instance. This message may be suppressed if the input is known to be from a trusted source and external resource resolution from locations that are not known in advance must be supported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA3076", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CA3077", - "shortDescription": { - "text": "RoslynAnalyzers Insecure Processing in API Design, XmlDocument and XmlTextReader" - }, - "fullDescription": { - "text": "Enabling DTD processing on all instances derived from XmlTextReader or XmlDocument and using XmlUrlResolver for resolving external XML entities may lead to information disclosure. Ensure to set the XmlResolver property to null, create an instance of XmlSecureResolver when processing untrusted input, or use XmlReader.Create method with a secure XmlReaderSettings argument. Unless you need to enable it, ensure the DtdProcessing property is set to false.", - "markdown": "Enabling DTD processing on all instances derived from XmlTextReader or XmlDocument and using XmlUrlResolver for resolving external XML entities may lead to information disclosure. Ensure to set the XmlResolver property to null, create an instance of XmlSecureResolver when processing untrusted input, or use XmlReader.Create method with a secure XmlReaderSettings argument. Unless you need to enable it, ensure the DtdProcessing property is set to false." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CA3077", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReorderCtor", - "shortDescription": { - "text": "reorder-ctor clang diagnostic" - }, - "fullDescription": { - "text": "-Wreorder-ctor clang diagnostic · Learn more", - "markdown": "-Wreorder-ctor clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreorder-ctor)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReorderCtor", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PolymorphicFieldLikeEventInvocation", - "shortDescription": { - "text": "Invocation of polymorphic field-like event" - }, - "fullDescription": { - "text": "Invocation of 'virtual' or 'override' field-like event leads to unpredictable result because the invocation list is not virtual Learn more...", - "markdown": "Invocation of 'virtual' or 'override' field-like event leads to unpredictable result because the invocation list is not virtual [Learn more...](https://www.jetbrains.com/help/rider/PolymorphicFieldLikeEventInvocation.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PolymorphicFieldLikeEventInvocation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadEmptyBracesLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around empty braces)" - }, - "fullDescription": { - "text": "Around empty braces", - "markdown": "Around empty braces" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadEmptyBracesLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOptinTaintTaintedAlloc", - "shortDescription": { - "text": "optin.taint.TaintedAlloc clang static analyzer check" - }, - "fullDescription": { - "text": "optin.taint.TaintedAlloc clang static analyzer check · Learn more", - "markdown": "optin.taint.TaintedAlloc clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOptinTaintTaintedAlloc", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantCast", - "shortDescription": { - "text": "Redundant cast" - }, - "fullDescription": { - "text": "Type cast can be safely removed Learn more...", - "markdown": "Type cast can be safely removed [Learn more...](https://www.jetbrains.com/help/rider/RedundantCast.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantCast", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerApiModelingLlvmCastValue", - "shortDescription": { - "text": "apiModeling.llvm.CastValue clang static analyzer check" - }, - "fullDescription": { - "text": "apiModeling.llvm.CastValue clang static analyzer check · Learn more", - "markdown": "apiModeling.llvm.CastValue clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerApiModelingLlvmCastValue", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringLiteralAsInterpolationArgument", - "shortDescription": { - "text": "String literal can be inlined" - }, - "fullDescription": { - "text": "String literal can be inlined into interpolation", - "markdown": "String literal can be inlined into interpolation" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "StringLiteralAsInterpolationArgument", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerFuchsiaHandleChecker", - "shortDescription": { - "text": "fuchsia.HandleChecker clang static analyzer check" - }, - "fullDescription": { - "text": "fuchsia.HandleChecker clang static analyzer check · Learn more", - "markdown": "fuchsia.HandleChecker clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerFuchsiaHandleChecker", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShadowField", - "shortDescription": { - "text": "shadow-field clang diagnostic" - }, - "fullDescription": { - "text": "-Wshadow-field clang diagnostic · Learn more", - "markdown": "-Wshadow-field clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshadow-field)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShadowField", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantWithExpression", - "shortDescription": { - "text": "Empty 'with' expression is redundant" - }, - "fullDescription": { - "text": "Empty 'with' expression applied to newly created object instance results in unnecessary clone creation", - "markdown": "Empty 'with' expression applied to newly created object instance results in unnecessary clone creation" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantWithExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExtraQualification", - "shortDescription": { - "text": "extra-qualification clang diagnostic" - }, - "fullDescription": { - "text": "-Wextra-qualification clang diagnostic · Learn more", - "markdown": "-Wextra-qualification clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-qualification)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExtraQualification", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToVbAutoPropertyWhenPossible", - "shortDescription": { - "text": "Convert property to auto-property when possible" - }, - "fullDescription": { - "text": "Converts property declaration to VB.NET auto-property syntax.", - "markdown": "Converts property declaration to VB.NET auto-property syntax." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToVbAutoPropertyWhenPossible", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppNoexceptMove", - "shortDescription": { - "text": "hicpp-noexcept-move clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-noexcept-move clang-tidy check · Learn more", - "markdown": "hicpp-noexcept-move clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/noexcept-move.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppNoexceptMove", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAutoStorageClass", - "shortDescription": { - "text": "auto-storage-class clang diagnostic" - }, - "fullDescription": { - "text": "-Wauto-storage-class clang diagnostic · Learn more", - "markdown": "-Wauto-storage-class clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-storage-class)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAutoStorageClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.UnusedElementDueToConfigSourceAttribute", - "shortDescription": { - "text": "Redundant element or attribute because of 'configSource' attribute" - }, - "fullDescription": { - "text": "Element or attribute is not applied because of 'configSource' attribute and can be safely removed", - "markdown": "Element or attribute is not applied because of 'configSource' attribute and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.UnusedElementDueToConfigSourceAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Redundancies in Code", - "index": 98, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppConceptNeverUsed", - "shortDescription": { - "text": "Concept is never used" - }, - "fullDescription": { - "text": "Concept is never used", - "markdown": "Concept is never used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppConceptNeverUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadExpressionBracesLineBreaks", - "shortDescription": { - "text": "Incorrect line breaks (around expression braces)" - }, - "fullDescription": { - "text": "Around expression braces Learn more...", - "markdown": "Around expression braces [Learn more...](https://www.jetbrains.com/help/rider/BadExpressionBracesLineBreaks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadExpressionBracesLineBreaks", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompleteModule", - "shortDescription": { - "text": "incomplete-module clang diagnostic" - }, - "fullDescription": { - "text": "-Wincomplete-module clang diagnostic · Learn more", - "markdown": "-Wincomplete-module clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincomplete-module)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompleteModule", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMissingKeywordThrow", - "shortDescription": { - "text": "May be missing keyword 'throw'" - }, - "fullDescription": { - "text": "Object of exception type is created, but is not thrown", - "markdown": "Object of exception type is created, but is not thrown" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMissingKeywordThrow", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppNonInlineFunctionDefinitionInHeaderFile", - "shortDescription": { - "text": "Non-inline function definition in a header file" - }, - "fullDescription": { - "text": "A function definition in a header file that will lead to a multiple definition linkage error Learn more...", - "markdown": "A function definition in a header file that will lead to a multiple definition linkage error [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rs-inline)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppNonInlineFunctionDefinitionInHeaderFile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedMemberHierarchy.Local", - "shortDescription": { - "text": "Type member is only used in overrides (private accessibility)" - }, - "fullDescription": { - "text": "Type member is never used from outside of implementation hierarchy, it is only accessed from overrides through base call", - "markdown": "Type member is never used from outside of implementation hierarchy, it is only accessed from overrides through base call" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedMemberHierarchy.Local", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuStaticFloatInit", - "shortDescription": { - "text": "gnu-static-float-init clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-static-float-init clang diagnostic · Learn more", - "markdown": "-Wgnu-static-float-init clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-static-float-init)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuStaticFloatInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.NoNullPatternMatching", - "shortDescription": { - "text": "Possible unintended bypass of lifetime check of underlying Unity engine object (pattern matching null checks on a type deriving from 'UnityEngine.Object' bypasses the lifetime check on the underlying Unity engine object)" - }, - "fullDescription": { - "text": "Pattern matching null checks operators do not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. Learn more...", - "markdown": "Pattern matching null checks operators do not call custom equality operators defined on 'UnityEngine.Object'. These operators check if the underlying Unity engine object has been destroyed. Prefer an explicit null comparison or implicit bool comparison if the lifetime check is intended, or explicitly use 'object.ReferenceEquals()' for a standard (and quicker) CLR null check. [Learn more...](https://github.com/JetBrains/resharper-unity/wiki/Possible-unintended-bypass-of-lifetime-check-of-underlying-Unity-engine-object)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "Unity.NoNullPatternMatching", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAssume", - "shortDescription": { - "text": "assume clang diagnostic" - }, - "fullDescription": { - "text": "-Wassume clang diagnostic · Learn more", - "markdown": "-Wassume clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wassume)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAssume", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp98CompatUnnamedTypeTemplateArgs", - "shortDescription": { - "text": "c++98-compat-unnamed-type-template-args clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++98-compat-unnamed-type-template-args clang diagnostic · Learn more", - "markdown": "-Wc++98-compat-unnamed-type-template-args clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-98-compat-unnamed-type-template-args)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp98CompatUnnamedTypeTemplateArgs", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DefaultStructEqualityIsUsed.Global", - "shortDescription": { - "text": "Struct with default equality members is used for comparison (non-private accessibility)" - }, - "fullDescription": { - "text": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are based on reflection and perform poorly. To prevent boxing and improve performance, overriding the equality members is recommended. This inspection only triggers if the struct or its containing type (such as record) is actually used for equality comparisons in the solution. Learn more...", - "markdown": "Default implementations of the 'Equals' and 'GetHashCode' methods of a struct are based on reflection and perform poorly. To prevent boxing and improve performance, overriding the equality members is recommended. This inspection only triggers if the struct or its containing type (such as record) is actually used for equality comparisons in the solution. [Learn more...](https://www.jetbrains.com/help/rider/DefaultStructEqualityIsUsed.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "DefaultStructEqualityIsUsed.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1717", - "shortDescription": { - "text": "Assignment made to same variable" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/a1kzfw0z.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1717", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1711", - "shortDescription": { - "text": "XML comment has a 'typeparam' tag for 'TypeParameter', but there is no type parameter by that name" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs1711)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1711", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1712", - "shortDescription": { - "text": "Type parameter has no matching typeparam tag in the XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/t8zca749.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1712", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSimpleAssignment.False", - "shortDescription": { - "text": "Replace with simple assignment" - }, - "fullDescription": { - "text": "$bool1$ &= false", - "markdown": "$bool1$ \\&= false" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSimpleAssignment.False", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CSharpWarnings__CS1710", - "shortDescription": { - "text": "Duplicate typeparam tag in XML comment" - }, - "fullDescription": { - "text": "Learn more...", - "markdown": "[Learn more...](https://msdn.microsoft.com/en-us/library/k5ya7w1x.aspx)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "CSharpWarnings__CS1710", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidComparisonInTempFailureRetry", - "shortDescription": { - "text": "android-comparison-in-temp-failure-retry clang-tidy check" - }, - "fullDescription": { - "text": "android-comparison-in-temp-failure-retry clang-tidy check · Learn more", - "markdown": "android-comparison-in-temp-failure-retry clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/comparison-in-temp-failure-retry.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidComparisonInTempFailureRetry", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp20CompatPedantic", - "shortDescription": { - "text": "c++20-compat-pedantic clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++20-compat-pedantic clang diagnostic · Learn more", - "markdown": "-Wc++20-compat-pedantic clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-20-compat-pedantic)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp20CompatPedantic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ClassWithVirtualMembersNeverInherited.Local", - "shortDescription": { - "text": "Class with virtual (overridable) members never inherited (private accessibility)" - }, - "fullDescription": { - "text": "Non-abstract class has virtual (overridable) members but has no inheritors Learn more...", - "markdown": "Non-abstract class has virtual (overridable) members but has no inheritors [Learn more...](https://www.jetbrains.com/help/rider/ClassWithVirtualMembersNeverInherited.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ClassWithVirtualMembersNeverInherited.Local", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCertOop57Cpp", - "shortDescription": { - "text": "cert-oop57-cpp clang-tidy check" - }, - "fullDescription": { - "text": "cert-oop57-cpp clang-tidy check · Learn more", - "markdown": "cert-oop57-cpp clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cert/oop57-cpp.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCertOop57Cpp", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NUnit.TestCaseResultPropertyIsObsolete", - "shortDescription": { - "text": "NUnit. Test case Result property is obsolete." - }, - "fullDescription": { - "text": "NUnit. Test case Result property is obsolete since NUnit 2.6. Learn more...", - "markdown": "NUnit. Test case Result property is obsolete since NUnit 2.6. [Learn more...](https://www.jetbrains.com/help/rider/NUnit.TestCaseResultPropertyIsObsolete.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NUnit.TestCaseResultPropertyIsObsolete", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/NUnit", - "index": 26, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUE4ProbableMemoryIssuesWithUObjectsInContainer", - "shortDescription": { - "text": "Objects stored in non-uproperty member can be destroyed during garbage collection, resulting in stale pointers" - }, - "fullDescription": { - "text": "Objects stored in non-uproperty member can be destroyed during garbage collection, resulting in stale pointers", - "markdown": "Objects stored in non-uproperty member can be destroyed during garbage collection, resulting in stale pointers" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUE4ProbableMemoryIssuesWithUObjectsInContainer", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Unreal Engine", - "index": 6, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPrintfRiskyFormat", - "shortDescription": { - "text": "Possibly invalid printf format specifier" - }, - "fullDescription": { - "text": "Format string contains a potential error", - "markdown": "Format string contains a potential error" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppPrintfRiskyFormat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UsePositionalDeconstructionPattern", - "shortDescription": { - "text": "Use positional deconstruction pattern" - }, - "fullDescription": { - "text": "Replace property pattern member(s) of recursive pattern with positional deconstruction patterns", - "markdown": "Replace property pattern member(s) of recursive pattern with positional deconstruction patterns" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UsePositionalDeconstructionPattern", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.SharedStaticUnmanagedType", - "shortDescription": { - "text": "Shared static type parameter requires the unmanaged constraint" - }, - "fullDescription": { - "text": "Shared static type parameter requires the unmanaged constraint", - "markdown": "Shared static type parameter requires the unmanaged constraint" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.SharedStaticUnmanagedType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPadded", - "shortDescription": { - "text": "padded clang diagnostic" - }, - "fullDescription": { - "text": "-Wpadded clang diagnostic · Learn more", - "markdown": "-Wpadded clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpadded)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPadded", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantLogicalConditionalExpressionOperand", - "shortDescription": { - "text": "Redundant operand in logical conditional expression" - }, - "fullDescription": { - "text": "Redundant operand in logical conditional expression, for example \r\n expr || false\r\n expr && true\r\n Learn more...", - "markdown": "Redundant operand in logical conditional expression, for example\n\n```\n\r\n expr || false\r\n expr && true\r\n```\n\n[Learn more...](https://www.jetbrains.com/help/rider/RedundantLogicalConditionalExpressionOperand.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantLogicalConditionalExpressionOperand", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticLanguageExtensionToken", - "shortDescription": { - "text": "language-extension-token clang diagnostic" - }, - "fullDescription": { - "text": "-Wlanguage-extension-token clang diagnostic · Learn more", - "markdown": "-Wlanguage-extension-token clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wlanguage-extension-token)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticLanguageExtensionToken", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NonAtomicCompoundOperator", - "shortDescription": { - "text": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead." - }, - "fullDescription": { - "text": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead.", - "markdown": "Suspicious 'volatile' field usage: compound operation is not atomic. 'Interlocked' class can be used instead." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NonAtomicCompoundOperator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHighlighting", - "shortDescription": { - "text": "Unknown clang-tidy checks" - }, - "fullDescription": { - "text": "Unknown clang-tidy checks.", - "markdown": "Unknown clang-tidy checks." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHighlighting", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedButSetVariable", - "shortDescription": { - "text": "unused-but-set-variable clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-but-set-variable clang diagnostic · Learn more", - "markdown": "-Wunused-but-set-variable clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-but-set-variable)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedButSetVariable", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1015FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Use nameof operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1015FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalObjcBoolCompare", - "shortDescription": { - "text": "tautological-objc-bool-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-objc-bool-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-objc-bool-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-objc-bool-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalObjcBoolCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OverriddenWithSameValue", - "shortDescription": { - "text": "Resource is overridden with identical value" - }, - "fullDescription": { - "text": "Base resource item and the current item have the same value Learn more...", - "markdown": "Base resource item and the current item have the same value [Learn more...](https://www.jetbrains.com/help/rider/OverriddenWithSameValue.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "OverriddenWithSameValue", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ResX/Redundancies in Code", - "index": 99, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asxx.PathError", - "shortDescription": { - "text": "Path error" - }, - "fullDescription": { - "text": "Path error", - "markdown": "Path error" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Asxx.PathError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HttpHandler or WebService/Potential Code Quality Issues", - "index": 101, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMisspelledAssumption", - "shortDescription": { - "text": "misspelled-assumption clang diagnostic" - }, - "fullDescription": { - "text": "-Wmisspelled-assumption clang diagnostic · Learn more", - "markdown": "-Wmisspelled-assumption clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmisspelled-assumption)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMisspelledAssumption", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeNamespaceBody", - "shortDescription": { - "text": "Use preferred namespace body style" - }, - "fullDescription": { - "text": "Use file-scoped or block-scoped namespace body Learn more...", - "markdown": "Use file-scoped or block-scoped namespace body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeNamespaceBody.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeNamespaceBody", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeUseTrailingReturnType", - "shortDescription": { - "text": "modernize-use-trailing-return-type clang-tidy check" - }, - "fullDescription": { - "text": "modernize-use-trailing-return-type clang-tidy check · Learn more", - "markdown": "modernize-use-trailing-return-type clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/use-trailing-return-type.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeUseTrailingReturnType", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftStaticAssert", - "shortDescription": { - "text": "microsoft-static-assert clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-static-assert clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-static-assert clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-static-assert)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftStaticAssert", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMissingTemplateArgListAfterTemplateKw", - "shortDescription": { - "text": "missing-template-arg-list-after-template-kw clang diagnostic" - }, - "fullDescription": { - "text": "-Wmissing-template-arg-list-after-template-kw clang diagnostic · Learn more", - "markdown": "-Wmissing-template-arg-list-after-template-kw clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmissing-template-arg-list-after-template-kw)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMissingTemplateArgListAfterTemplateKw", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PropertyCanBeMadeInitOnly.Local", - "shortDescription": { - "text": "Property can be made init-only (private accessibility)" - }, - "fullDescription": { - "text": "Property setter can be replaced with 'init' accessor to enforce property immutability Learn more...", - "markdown": "Property setter can be replaced with 'init' accessor to enforce property immutability [Learn more...](https://www.jetbrains.com/help/rider/PropertyCanBeMadeInitOnly.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "PropertyCanBeMadeInitOnly.Local", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCastQual", - "shortDescription": { - "text": "cast-qual clang diagnostic" - }, - "fullDescription": { - "text": "-Wcast-qual clang diagnostic · Learn more", - "markdown": "-Wcast-qual clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-qual)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCastQual", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11Compat", - "shortDescription": { - "text": "c++11-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-compat clang diagnostic · Learn more", - "markdown": "-Wc++11-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11Compat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftEnumValue", - "shortDescription": { - "text": "microsoft-enum-value clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-enum-value clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-enum-value clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-enum-value)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftEnumValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2007", - "shortDescription": { - "text": "RoslynAnalyzers Invalid entry in analyzer release file" - }, - "fullDescription": { - "text": "Invalid entry in analyzer release file.", - "markdown": "Invalid entry in analyzer release file." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2007", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUnusedRaii", - "shortDescription": { - "text": "bugprone-unused-raii clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-unused-raii clang-tidy check · Learn more", - "markdown": "bugprone-unused-raii clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unused-raii.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUnusedRaii", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneMisplacedOperatorInStrlenInAlloc", - "shortDescription": { - "text": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check · Learn more", - "markdown": "bugprone-misplaced-operator-in-strlen-in-alloc clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/misplaced-operator-in-strlen-in-alloc.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneMisplacedOperatorInStrlenInAlloc", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2008", - "shortDescription": { - "text": "RoslynAnalyzers Enable analyzer release tracking" - }, - "fullDescription": { - "text": "Enabling release tracking for analyzer packages helps in tracking and documenting the analyzer diagnostics that ship and/or change with each analyzer release. See details at https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md.", - "markdown": "Enabling release tracking for analyzer packages helps in tracking and documenting the analyzer diagnostics that ship and/or change with each analyzer release. See details at https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2008", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2005", - "shortDescription": { - "text": "RoslynAnalyzers Remove duplicate entries for diagnostic ID in the same analyzer release" - }, - "fullDescription": { - "text": "Remove duplicate entries for diagnostic ID in the same analyzer release.", - "markdown": "Remove duplicate entries for diagnostic ID in the same analyzer release." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2005", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2006", - "shortDescription": { - "text": "RoslynAnalyzers Remove duplicate entries for diagnostic ID between analyzer releases" - }, - "fullDescription": { - "text": "Remove duplicate entries for diagnostic ID between analyzer releases.", - "markdown": "Remove duplicate entries for diagnostic ID between analyzer releases." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2006", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2003", - "shortDescription": { - "text": "RoslynAnalyzers Shipped diagnostic IDs that are no longer reported should have an entry in the 'Removed Rules' table in unshipped file" - }, - "fullDescription": { - "text": "Shipped diagnostic IDs that are no longer reported should have an entry in the 'Removed Rules' table in unshipped file.", - "markdown": "Shipped diagnostic IDs that are no longer reported should have an entry in the 'Removed Rules' table in unshipped file." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2003", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticShorten64To32", - "shortDescription": { - "text": "shorten-64-to-32 clang diagnostic" - }, - "fullDescription": { - "text": "-Wshorten-64-to-32 clang diagnostic · Learn more", - "markdown": "-Wshorten-64-to-32 clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wshorten-64-to-32)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticShorten64To32", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2004", - "shortDescription": { - "text": "RoslynAnalyzers Diagnostic IDs marked as removed in analyzer release file should not be reported by analyzers" - }, - "fullDescription": { - "text": "Diagnostic IDs marked as removed in analyzer release file should not be reported by analyzers.", - "markdown": "Diagnostic IDs marked as removed in analyzer release file should not be reported by analyzers." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2004", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Html.EventNotResolved", - "shortDescription": { - "text": "Unknown event" - }, - "fullDescription": { - "text": "Unknown event in HTML and related technologies", - "markdown": "Unknown event in HTML and related technologies" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Html.EventNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Potential Code Quality Issues", - "index": 54, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecEpollCreate", - "shortDescription": { - "text": "android-cloexec-epoll-create clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-epoll-create clang-tidy check · Learn more", - "markdown": "android-cloexec-epoll-create clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-epoll-create.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecEpollCreate", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityAvoidUnconditionalPreprocessorIf", - "shortDescription": { - "text": "readability-avoid-unconditional-preprocessor-if clang-tidy check" - }, - "fullDescription": { - "text": "readability-avoid-unconditional-preprocessor-if clang-tidy check · Learn more", - "markdown": "readability-avoid-unconditional-preprocessor-if clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/avoid-unconditional-preprocessor-if.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityAvoidUnconditionalPreprocessorIf", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2001", - "shortDescription": { - "text": "RoslynAnalyzers Ensure up-to-date entry for analyzer diagnostic IDs are added to analyzer release" - }, - "fullDescription": { - "text": "Ensure up-to-date entry for analyzer diagnostic IDs are added to analyzer release.", - "markdown": "Ensure up-to-date entry for analyzer diagnostic IDs are added to analyzer release." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2001", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUninitializedDependentBaseClass", - "shortDescription": { - "text": "Uninitialized dependent base class" - }, - "fullDescription": { - "text": "Possibly uninitialized dependent base class", - "markdown": "Possibly uninitialized dependent base class" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUninitializedDependentBaseClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Compiler Warnings", - "index": 75, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticParenthesesEquality", - "shortDescription": { - "text": "parentheses-equality clang diagnostic" - }, - "fullDescription": { - "text": "-Wparentheses-equality clang diagnostic · Learn more", - "markdown": "-Wparentheses-equality clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wparentheses-equality)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticParenthesesEquality", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2002", - "shortDescription": { - "text": "RoslynAnalyzers Do not add removed analyzer diagnostic IDs to unshipped analyzer release" - }, - "fullDescription": { - "text": "Entries for analyzer diagnostic IDs that are no longer reported and never shipped can be removed from unshipped analyzer release.", - "markdown": "Entries for analyzer diagnostic IDs that are no longer reported and never shipped can be removed from unshipped analyzer release." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2002", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseAutoForNumeric", - "shortDescription": { - "text": "Use preferred 'auto' style (numeric type can be replaced with auto)" - }, - "fullDescription": { - "text": "A numeric type can be replaced with 'auto'", - "markdown": "A numeric type can be replaced with 'auto'" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseAutoForNumeric", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleAssignment.1", - "shortDescription": { - "text": "Replace with single assignment" - }, - "fullDescription": { - "text": "Dim $x$ = False If($bool1$) Then $x$ = True", - "markdown": "Dim $x$ = False If($bool1$) Then $x$ = True" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleAssignment.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithSingleAssignment.2", - "shortDescription": { - "text": "Replace with single assignment" - }, - "fullDescription": { - "text": "Dim $x$ = True If($bool1$) Then $x$ = False", - "markdown": "Dim $x$ = True If($bool1$) Then $x$ = False" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithSingleAssignment.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppTypeAliasNeverUsed", - "shortDescription": { - "text": "Type alias is never used" - }, - "fullDescription": { - "text": "A type alias is never used", - "markdown": "A type alias is never used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppTypeAliasNeverUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantReadonlyModifier", - "shortDescription": { - "text": "Redundant 'readonly' modifier" - }, - "fullDescription": { - "text": "Readonly 'redundant' member/accessor modifier in struct declaration", - "markdown": "Readonly 'redundant' member/accessor modifier in struct declaration" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantReadonlyModifier", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticSelfAssignField", - "shortDescription": { - "text": "self-assign-field clang diagnostic" - }, - "fullDescription": { - "text": "-Wself-assign-field clang diagnostic · Learn more", - "markdown": "-Wself-assign-field clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wself-assign-field)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticSelfAssignField", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppPassValueParameterByConstReference", - "shortDescription": { - "text": "Pass value parameters by const reference" - }, - "fullDescription": { - "text": "Parameter of a type that is expensive to copy is passed by value, but it can be passed by const reference instead Learn more...", - "markdown": "Parameter of a type that is expensive to copy is passed by value, but it can be passed by const reference instead [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-in)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppPassValueParameterByConstReference", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticConditionalTypeMismatch", - "shortDescription": { - "text": "conditional-type-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Wconditional-type-mismatch clang diagnostic · Learn more", - "markdown": "-Wconditional-type-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wconditional-type-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticConditionalTypeMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantArrayLowerBoundSpecification", - "shortDescription": { - "text": "Redundant array lower bound specification" - }, - "fullDescription": { - "text": "Array lower bound specification is redundant", - "markdown": "Array lower bound specification is redundant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantArrayLowerBoundSpecification", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Redundancies in Code", - "index": 96, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBoostUseToString", - "shortDescription": { - "text": "boost-use-to-string clang-tidy check" - }, - "fullDescription": { - "text": "boost-use-to-string clang-tidy check · Learn more", - "markdown": "boost-use-to-string clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/boost/use-to-string.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyBoostUseToString", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JoinDeclarationAndInitializer", - "shortDescription": { - "text": "Join local variable declaration and assignment" - }, - "fullDescription": { - "text": "Join local variable declaration and assignment Learn more...", - "markdown": "Join local variable declaration and assignment [Learn more...](https://www.jetbrains.com/help/rider/JoinDeclarationAndInitializer.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JoinDeclarationAndInitializer", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.SyntaxError", - "shortDescription": { - "text": "Syntax error" - }, - "fullDescription": { - "text": "Syntax error", - "markdown": "Syntax error" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RouteTemplates.SyntaxError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SwitchStatementMissingSomeEnumCasesNoDefault", - "shortDescription": { - "text": "Some values of the enum are not processed inside 'switch' statement" - }, - "fullDescription": { - "text": "Some values of the enum are not processed inside 'switch' statement Learn more...", - "markdown": "Some values of the enum are not processed inside 'switch' statement [Learn more...](https://www.jetbrains.com/help/rider/SwitchStatementMissingSomeEnumCasesNoDefault.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SwitchStatementMissingSomeEnumCasesNoDefault", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneThrowKeywordMissing", - "shortDescription": { - "text": "bugprone-throw-keyword-missing clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-throw-keyword-missing clang-tidy check · Learn more", - "markdown": "bugprone-throw-keyword-missing clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/throw-keyword-missing.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneThrowKeywordMissing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated", - "shortDescription": { - "text": "[MustDisposeResource] annotation is not inherited from the base constructor and should be placed explicitly" - }, - "fullDescription": { - "text": "[MustDisposeResource] annotation is not inherited from the base constructor Learn more...", - "markdown": "\\[MustDisposeResource\\] annotation is not inherited from the base constructor [Learn more...](https://www.jetbrains.com/help/rider/ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ConstructorWithMustDisposeResourceAttributeBaseIsNotAnnotated", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantPatternParentheses", - "shortDescription": { - "text": "Remove redundant pattern-matching parentheses" - }, - "fullDescription": { - "text": "Parentheses surrounding a pattern are redundant if they do not change precedence of `or`-/`and`-patterns", - "markdown": "Parentheses surrounding a pattern are redundant if they do not change precedence of \\`or\\`-/\\`and\\`-patterns" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RedundantPatternParentheses", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToPrimaryConstructor", - "shortDescription": { - "text": "Convert constructor into primary constructor" - }, - "fullDescription": { - "text": "Replace ordinary constructor with primary constructor Learn more...", - "markdown": "Replace ordinary constructor with primary constructor [Learn more...](https://www.jetbrains.com/help/rider/ConvertToPrimaryConstructor.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToPrimaryConstructor", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantLinebreak", - "shortDescription": { - "text": "Incorrect line breaks (line break is redundant elsewhere)" - }, - "fullDescription": { - "text": "Line break is redundant elsewhere", - "markdown": "Line break is redundant elsewhere" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantLinebreak", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyZirconTemporaryObjects", - "shortDescription": { - "text": "zircon-temporary-objects clang-tidy check" - }, - "fullDescription": { - "text": "zircon-temporary-objects clang-tidy check · Learn more", - "markdown": "zircon-temporary-objects clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/zircon/temporary-objects.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyZirconTemporaryObjects", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGlobalConstructors", - "shortDescription": { - "text": "global-constructors clang diagnostic" - }, - "fullDescription": { - "text": "-Wglobal-constructors clang diagnostic · Learn more", - "markdown": "-Wglobal-constructors clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wglobal-constructors)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGlobalConstructors", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantTypenameKeyword", - "shortDescription": { - "text": "Redundant 'typename' keyword" - }, - "fullDescription": { - "text": "Redundant 'typename' keyword", - "markdown": "Redundant 'typename' keyword" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppRedundantTypenameKeyword", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppDoxygenSyntaxError", - "shortDescription": { - "text": "Syntax error in doxygen comment" - }, - "fullDescription": { - "text": "Syntax error in a doxygen comment", - "markdown": "Syntax error in a doxygen comment" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppDoxygenSyntaxError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UselessComparisonToIntegralConstant", - "shortDescription": { - "text": "Comparison to integral constant is useless" - }, - "fullDescription": { - "text": "Comparison to integral constant is useless; the constant is outside the range of the target type", - "markdown": "Comparison to integral constant is useless; the constant is outside the range of the target type" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UselessComparisonToIntegralConstant", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantElseKeyword", - "shortDescription": { - "text": "Redundant 'else' keyword" - }, - "fullDescription": { - "text": "Redundant 'else' keyword", - "markdown": "Redundant 'else' keyword" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantElseKeyword", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPackedNonPod", - "shortDescription": { - "text": "packed-non-pod clang diagnostic" - }, - "fullDescription": { - "text": "-Wpacked-non-pod clang diagnostic · Learn more", - "markdown": "-Wpacked-non-pod clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpacked-non-pod)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPackedNonPod", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesSpecialMemberFunctions", - "shortDescription": { - "text": "cppcoreguidelines-special-member-functions clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-special-member-functions clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-special-member-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/special-member-functions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesSpecialMemberFunctions", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyConstructor", - "shortDescription": { - "text": "Empty constructor" - }, - "fullDescription": { - "text": "Empty public constructor declaration with no parameters is redundant. The compiler generates the same by default. Learn more...", - "markdown": "Empty public constructor declaration with no parameters is redundant. The compiler generates the same by default. [Learn more...](https://www.jetbrains.com/help/rider/EmptyConstructor.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "EmptyConstructor", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringIndexOfIsCultureSpecific.2", - "shortDescription": { - "text": "String.IndexOf is culture-specific (string.IndexOf(string, int) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.IndexOf($sarg$, $iarg1$) Learn more...", - "markdown": "$s$.IndexOf($sarg$, $iarg1$) [Learn more...](https://www.jetbrains.com/help/rider/StringIndexOfIsCultureSpecific.2.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringIndexOfIsCultureSpecific.2", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneUnsafeFunctions", - "shortDescription": { - "text": "bugprone-unsafe-functions clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-unsafe-functions clang-tidy check · Learn more", - "markdown": "bugprone-unsafe-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/unsafe-functions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneUnsafeFunctions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesSlicing", - "shortDescription": { - "text": "cppcoreguidelines-slicing clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-slicing clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-slicing clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/slicing.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesSlicing", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringIndexOfIsCultureSpecific.3", - "shortDescription": { - "text": "String.IndexOf is culture-specific (string.IndexOf(string, int) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.IndexOf($sarg$, $iarg1$, $iarg2$) Learn more...", - "markdown": "$s$.IndexOf($sarg$, $iarg1$, $iarg2$) [Learn more...](https://www.jetbrains.com/help/rider/StringIndexOfIsCultureSpecific.3.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringIndexOfIsCultureSpecific.3", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMixPackoffset", - "shortDescription": { - "text": "mix-packoffset clang diagnostic" - }, - "fullDescription": { - "text": "-Wmix-packoffset clang diagnostic · Learn more", - "markdown": "-Wmix-packoffset clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmix-packoffset)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMixPackoffset", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringIndexOfIsCultureSpecific.1", - "shortDescription": { - "text": "String.IndexOf is culture-specific (string.IndexOf(string) is culture-specific)" - }, - "fullDescription": { - "text": "$s$.IndexOf($sarg$) Learn more...", - "markdown": "$s$.IndexOf($sarg$) [Learn more...](https://www.jetbrains.com/help/rider/StringIndexOfIsCultureSpecific.1.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringIndexOfIsCultureSpecific.1", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscMisleadingBidirectional", - "shortDescription": { - "text": "misc-misleading-bidirectional clang-tidy check" - }, - "fullDescription": { - "text": "misc-misleading-bidirectional clang-tidy check · Learn more", - "markdown": "misc-misleading-bidirectional clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/misleading-bidirectional.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscMisleadingBidirectional", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityConvertMemberFunctionsToStatic", - "shortDescription": { - "text": "readability-convert-member-functions-to-static clang-tidy check" - }, - "fullDescription": { - "text": "readability-convert-member-functions-to-static clang-tidy check · Learn more", - "markdown": "readability-convert-member-functions-to-static clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/convert-member-functions-to-static.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityConvertMemberFunctionsToStatic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StaticMemberInGenericType", - "shortDescription": { - "text": "Static field or auto-property in generic type" - }, - "fullDescription": { - "text": "Static field or auto-property in generic type may result in state duplication per each generic type instantiation Learn more...", - "markdown": "Static field or auto-property in generic type may result in state duplication per each generic type instantiation [Learn more...](https://www.jetbrains.com/help/rider/StaticMemberInGenericType.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StaticMemberInGenericType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUndefinedArmZa", - "shortDescription": { - "text": "undefined-arm-za clang diagnostic" - }, - "fullDescription": { - "text": "-Wundefined-arm-za clang diagnostic · Learn more", - "markdown": "-Wundefined-arm-za clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wundefined-arm-za)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUndefinedArmZa", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticReservedMacroIdentifier", - "shortDescription": { - "text": "reserved-macro-identifier clang diagnostic" - }, - "fullDescription": { - "text": "-Wreserved-macro-identifier clang diagnostic · Learn more", - "markdown": "-Wreserved-macro-identifier clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wreserved-macro-identifier)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticReservedMacroIdentifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppVararg", - "shortDescription": { - "text": "hicpp-vararg clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-vararg clang-tidy check · Learn more", - "markdown": "hicpp-vararg clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/vararg.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppVararg", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscDefinitionsInHeaders", - "shortDescription": { - "text": "misc-definitions-in-headers clang-tidy check" - }, - "fullDescription": { - "text": "misc-definitions-in-headers clang-tidy check · Learn more", - "markdown": "misc-definitions-in-headers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/definitions-in-headers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyMiscDefinitionsInHeaders", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantUsingDirective.Global", - "shortDescription": { - "text": "Redundant global using directive" - }, - "fullDescription": { - "text": "Global using directive is not required by the code and can be safely removed Learn more...", - "markdown": "Global using directive is not required by the code and can be safely removed [Learn more...](https://www.jetbrains.com/help/rider/RedundantUsingDirective.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantUsingDirective.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseIndexedProperty", - "shortDescription": { - "text": "Use indexed property" - }, - "fullDescription": { - "text": "Use indexed property in COM import types instead of the accessor usage", - "markdown": "Use indexed property in COM import types instead of the accessor usage" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseIndexedProperty", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyMiscNewDeleteOverloads", - "shortDescription": { - "text": "misc-new-delete-overloads clang-tidy check" - }, - "fullDescription": { - "text": "misc-new-delete-overloads clang-tidy check · Learn more", - "markdown": "misc-new-delete-overloads clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc/new-delete-overloads.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyMiscNewDeleteOverloads", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1049FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Simplify boolean comparison" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1049FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDeprecatedEnumFloatConversion", - "shortDescription": { - "text": "deprecated-enum-float-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wdeprecated-enum-float-conversion clang diagnostic · Learn more", - "markdown": "-Wdeprecated-enum-float-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdeprecated-enum-float-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDeprecatedEnumFloatConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantComplexityInComparison", - "shortDescription": { - "text": "Expression can be simplified" - }, - "fullDescription": { - "text": "Expression can be simplified", - "markdown": "Expression can be simplified" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantComplexityInComparison", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticRangeLoopBindReference", - "shortDescription": { - "text": "range-loop-bind-reference clang diagnostic" - }, - "fullDescription": { - "text": "-Wrange-loop-bind-reference clang diagnostic · Learn more", - "markdown": "-Wrange-loop-bind-reference clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wrange-loop-bind-reference)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticRangeLoopBindReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.LoadSceneWrongIndex", - "shortDescription": { - "text": "The index is missing in the build settings" - }, - "fullDescription": { - "text": "There is no scene with the same index in the Unity build settings.", - "markdown": "There is no scene with the same index in the Unity build settings." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.LoadSceneWrongIndex", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity", - "index": 18, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSuspiciousReallocUsage", - "shortDescription": { - "text": "bugprone-suspicious-realloc-usage clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-suspicious-realloc-usage clang-tidy check · Learn more", - "markdown": "bugprone-suspicious-realloc-usage clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/suspicious-realloc-usage.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSuspiciousReallocUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringCompareToIsCultureSpecific", - "shortDescription": { - "text": "String.CompareTo is culture-specific" - }, - "fullDescription": { - "text": "$s1$.CompareTo($s2$) Learn more...", - "markdown": "$s1$.CompareTo($s2$) [Learn more...](https://www.jetbrains.com/help/rider/StringCompareToIsCultureSpecific.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StringCompareToIsCultureSpecific", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EventNeverInvoked", - "shortDescription": { - "text": "Event never invoked" - }, - "fullDescription": { - "text": "Event never invoked. Note that in C# this warning is the compiler warning CS0067 and is not configured here.", - "markdown": "Event never invoked. Note that in C# this warning is the compiler warning CS0067 and is not configured here." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "EventNeverInvoked", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaNSAutoreleasePool", - "shortDescription": { - "text": "osx.cocoa.NSAutoreleasePool clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.NSAutoreleasePool clang static analyzer check · Learn more", - "markdown": "osx.cocoa.NSAutoreleasePool clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaNSAutoreleasePool", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticOverridingMethodMismatch", - "shortDescription": { - "text": "overriding-method-mismatch clang diagnostic" - }, - "fullDescription": { - "text": "-Woverriding-method-mismatch clang diagnostic · Learn more", - "markdown": "-Woverriding-method-mismatch clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#woverriding-method-mismatch)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticOverridingMethodMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeObjectCreationWhenTypeNotEvident", - "shortDescription": { - "text": "Use preferred style of 'new' expression when created type is not evident" - }, - "fullDescription": { - "text": "Add or remove explicit type specification in 'new' expression when type is not evident from the usage Learn more...", - "markdown": "Add or remove explicit type specification in 'new' expression when type is not evident from the usage [Learn more...](https://www.jetbrains.com/help/rider/ArrangeObjectCreationWhenTypeNotEvident.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ArrangeObjectCreationWhenTypeNotEvident", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyForStatement", - "shortDescription": { - "text": "Empty 'for' loop is redundant" - }, - "fullDescription": { - "text": "Empty 'for' loop is redundant Learn more...", - "markdown": "Empty 'for' loop is redundant [Learn more...](https://www.jetbrains.com/help/rider/EmptyForStatement.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "EmptyForStatement", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Asp.NotResolved", - "shortDescription": { - "text": "Unknown symbol" - }, - "fullDescription": { - "text": "Unknown symbol in ASP.NET and related technologies", - "markdown": "Unknown symbol in ASP.NET and related technologies" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "Asp.NotResolved", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnsupportedFriend", - "shortDescription": { - "text": "unsupported-friend clang diagnostic" - }, - "fullDescription": { - "text": "-Wunsupported-friend clang diagnostic · Learn more", - "markdown": "-Wunsupported-friend clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunsupported-friend)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnsupportedFriend", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSpuriouslyWakeUpFunctions", - "shortDescription": { - "text": "bugprone-spuriously-wake-up-functions clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-spuriously-wake-up-functions clang-tidy check · Learn more", - "markdown": "bugprone-spuriously-wake-up-functions clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/spuriously-wake-up-functions.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSpuriouslyWakeUpFunctions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAndroidCloexecAccept4", - "shortDescription": { - "text": "android-cloexec-accept4 clang-tidy check" - }, - "fullDescription": { - "text": "android-cloexec-accept4 clang-tidy check · Learn more", - "markdown": "android-cloexec-accept4 clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/android/cloexec-accept4.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAndroidCloexecAccept4", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaDealloc", - "shortDescription": { - "text": "osx.cocoa.Dealloc clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.Dealloc clang static analyzer check · Learn more", - "markdown": "osx.cocoa.Dealloc clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaDealloc", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IntDivisionByZero", - "shortDescription": { - "text": "Division by zero in at least one execution path" - }, - "fullDescription": { - "text": "Division by zero in at least one execution path", - "markdown": "Division by zero in at least one execution path" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IntDivisionByZero", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticEnumTooLarge", - "shortDescription": { - "text": "enum-too-large clang diagnostic" - }, - "fullDescription": { - "text": "-Wenum-too-large clang diagnostic · Learn more", - "markdown": "-Wenum-too-large clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wenum-too-large)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticEnumTooLarge", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticProfileInstrUnprofiled", - "shortDescription": { - "text": "profile-instr-unprofiled clang diagnostic" - }, - "fullDescription": { - "text": "-Wprofile-instr-unprofiled clang diagnostic · Learn more", - "markdown": "-Wprofile-instr-unprofiled clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprofile-instr-unprofiled)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticProfileInstrUnprofiled", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreUninitializedBranch", - "shortDescription": { - "text": "core.uninitialized.Branch clang static analyzer check" - }, - "fullDescription": { - "text": "core.uninitialized.Branch clang static analyzer check · Learn more", - "markdown": "core.uninitialized.Branch clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedBranch", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaVariadicMethodTypes", - "shortDescription": { - "text": "osx.cocoa.VariadicMethodTypes clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.VariadicMethodTypes clang static analyzer check · Learn more", - "markdown": "osx.cocoa.VariadicMethodTypes clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaVariadicMethodTypes", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1005FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Simplify nested using statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1005FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyLlvmlibcCalleeNamespace", - "shortDescription": { - "text": "llvmlibc-callee-namespace clang-tidy check" - }, - "fullDescription": { - "text": "llvmlibc-callee-namespace clang-tidy check · Learn more", - "markdown": "llvmlibc-callee-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/llvmlibc/callee-namespace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyLlvmlibcCalleeNamespace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyAbseilDurationComparison", - "shortDescription": { - "text": "abseil-duration-comparison clang-tidy check" - }, - "fullDescription": { - "text": "abseil-duration-comparison clang-tidy check · Learn more", - "markdown": "abseil-duration-comparison clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/abseil/duration-comparison.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyAbseilDurationComparison", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAutoVarId", - "shortDescription": { - "text": "auto-var-id clang diagnostic" - }, - "fullDescription": { - "text": "-Wauto-var-id clang diagnostic · Learn more", - "markdown": "-Wauto-var-id clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wauto-var-id)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAutoVarId", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseCollectionExpression", - "shortDescription": { - "text": "Use collection expression syntax" - }, - "fullDescription": { - "text": "Suggest to replace collection object construction and items additions with C# 12 collection expression syntax Learn more...", - "markdown": "Suggest to replace collection object construction and items additions with C# 12 collection expression syntax [Learn more...](https://www.jetbrains.com/help/rider/UseCollectionExpression.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseCollectionExpression", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUnmatchedPragmaRegionDirective", - "shortDescription": { - "text": "Missing a matching '#pragma endregion' directive" - }, - "fullDescription": { - "text": "A '#pragma region' directive is missing a matching '#pragma endregion' directive", - "markdown": "A '#pragma region' directive is missing a matching '#pragma endregion' directive" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppUnmatchedPragmaRegionDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleOrDefault.4", - "shortDescription": { - "text": "Replace with SingleOrDefault($args$)" - }, - "fullDescription": { - "text": "$expr$ && $seq$.Any($args$) ? $seq$.Single($args$) : default($T$)", - "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Single($args$) : default($T$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleOrDefault.4", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleOrDefault.2", - "shortDescription": { - "text": "Replace with SingleOrDefault($args$)" - }, - "fullDescription": { - "text": "$expr$ && $seq$.Any($args$) ? $seq$.Single($args$) : null", - "markdown": "$expr$ \\&\\& $seq$.Any($args$) ? $seq$.Single($args$) : null" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleOrDefault.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleOrDefault.3", - "shortDescription": { - "text": "Replace with SingleOrDefault($args$)" - }, - "fullDescription": { - "text": "$seq$.Any($args$) ? $seq$.Single($args$) : default($T$)", - "markdown": "$seq$.Any($args$) ? $seq$.Single($args$) : default($T$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleOrDefault.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticModuleFileExtension", - "shortDescription": { - "text": "module-file-extension clang diagnostic" - }, - "fullDescription": { - "text": "-Wmodule-file-extension clang diagnostic · Learn more", - "markdown": "-Wmodule-file-extension clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmodule-file-extension)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticModuleFileExtension", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Unity.BurstLoadingManagedType", - "shortDescription": { - "text": "Loading managed type is not supported" - }, - "fullDescription": { - "text": "Loading managed type is not supported", - "markdown": "Loading managed type is not supported" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Unity.BurstLoadingManagedType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Unity Burst Compiler Warnings", - "index": 57, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppFunctionSize", - "shortDescription": { - "text": "hicpp-function-size clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-function-size clang-tidy check · Learn more", - "markdown": "hicpp-function-size clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/function-size.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppFunctionSize", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReturnTypeCanBeEnumerable.Local", - "shortDescription": { - "text": "Return type can be IEnumerable (private accessibility)" - }, - "fullDescription": { - "text": "All usages of a method (or read-only property/indexer) use returned value as IEnumerable, but it is declared with more specific type (e.g. List) Learn more...", - "markdown": "All usages of a method (or read-only property/indexer) use returned value as IEnumerable, but it is declared with more specific type (e.g. List) [Learn more...](https://www.jetbrains.com/help/rider/ReturnTypeCanBeEnumerable.Local.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReturnTypeCanBeEnumerable.Local", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnusedMemberFunction", - "shortDescription": { - "text": "unused-member-function clang diagnostic" - }, - "fullDescription": { - "text": "-Wunused-member-function clang diagnostic · Learn more", - "markdown": "-Wunused-member-function clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunused-member-function)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnusedMemberFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExtraTokens", - "shortDescription": { - "text": "extra-tokens clang diagnostic" - }, - "fullDescription": { - "text": "-Wextra-tokens clang diagnostic · Learn more", - "markdown": "-Wextra-tokens clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wextra-tokens)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExtraTokens", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceWithSingleOrDefault.1", - "shortDescription": { - "text": "Replace with SingleOrDefault($args$)" - }, - "fullDescription": { - "text": "$seq$.Any($args$) ? $seq$.Single($args$) : null", - "markdown": "$seq$.Any($args$) ? $seq$.Single($args$) : null" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceWithSingleOrDefault.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StaticProblemInText", - "shortDescription": { - "text": "Cannot access static symbol in text argument" - }, - "fullDescription": { - "text": "Cannot access static symbol in text argument", - "markdown": "Cannot access static symbol in text argument" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StaticProblemInText", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RS2000", - "shortDescription": { - "text": "RoslynAnalyzers Add analyzer diagnostic IDs to analyzer release" - }, - "fullDescription": { - "text": "All supported analyzer diagnostic IDs should be part of an analyzer release.", - "markdown": "All supported analyzer diagnostic IDs should be part of an analyzer release." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RS2000", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RouteTemplates.ActionRoutePrefixCanBeExtractedToControllerRoute", - "shortDescription": { - "text": "Action's route prefix can be extracted to controller's route" - }, - "fullDescription": { - "text": "When all controller's actions' route templates have same prefixes, it's possible to extract their common prefix to controller's route template", - "markdown": "When all controller's actions' route templates have same prefixes, it's possible to extract their common prefix to controller's route template" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RouteTemplates.ActionRoutePrefixCanBeExtractedToControllerRoute", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "ASP.NET route templates/Code Notification", - "index": 48, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticAixCompat", - "shortDescription": { - "text": "aix-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Waix-compat clang diagnostic · Learn more", - "markdown": "-Waix-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#waix-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticAixCompat", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InterpolatedStringExpressionIsNotIFormattable", - "shortDescription": { - "text": "Formatting is specified, but interpolated string expression is not IFormattable" - }, - "fullDescription": { - "text": "Formatting is specified, but interpolated string expression is not IFormattable", - "markdown": "Formatting is specified, but interpolated string expression is not IFormattable" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "InterpolatedStringExpressionIsNotIFormattable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InvertIf", - "shortDescription": { - "text": "Invert 'if' statement to reduce nesting" - }, - "fullDescription": { - "text": "Invert 'if' statement to reduce nesting Learn more...", - "markdown": "Invert 'if' statement to reduce nesting [Learn more...](https://www.jetbrains.com/help/rider/InvertIf.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "InvertIf", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedField.Compiler", - "shortDescription": { - "text": "Field is never used" - }, - "fullDescription": { - "text": "Field is never used (compiler warning) Learn more...", - "markdown": "Field is never used (compiler warning) [Learn more...](https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0169)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "UnusedField.Compiler", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Compiler Warnings", - "index": 27, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMicrosoftStringLiteralFromPredefined", - "shortDescription": { - "text": "microsoft-string-literal-from-predefined clang diagnostic" - }, - "fullDescription": { - "text": "-Wmicrosoft-string-literal-from-predefined clang diagnostic · Learn more", - "markdown": "-Wmicrosoft-string-literal-from-predefined clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmicrosoft-string-literal-from-predefined)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMicrosoftStringLiteralFromPredefined", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyFuchsiaOverloadedOperator", - "shortDescription": { - "text": "fuchsia-overloaded-operator clang-tidy check" - }, - "fullDescription": { - "text": "fuchsia-overloaded-operator clang-tidy check · Learn more", - "markdown": "fuchsia-overloaded-operator clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/fuchsia/overloaded-operator.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyFuchsiaOverloadedOperator", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCastOfSelType", - "shortDescription": { - "text": "cast-of-sel-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wcast-of-sel-type clang diagnostic · Learn more", - "markdown": "-Wcast-of-sel-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wcast-of-sel-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCastOfSelType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IntVariableOverflowInUncheckedContext", - "shortDescription": { - "text": "Possible overflow in unchecked context" - }, - "fullDescription": { - "text": "Possible overflow in unchecked context", - "markdown": "Possible overflow in unchecked context" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "IntVariableOverflowInUncheckedContext", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ObjectCreationAsStatement", - "shortDescription": { - "text": "Possible unassigned object created by 'new' expression" - }, - "fullDescription": { - "text": "Object created by 'new' expression is possibly not assigned anywhere", - "markdown": "Object created by 'new' expression is possibly not assigned anywhere" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ObjectCreationAsStatement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantNullnessAttributeWithNullableReferenceTypes", - "shortDescription": { - "text": "[NotNull] or [CanBeNull] attribute is applied to a type that already has the same annotation from nullable reference types" - }, - "fullDescription": { - "text": "[NotNull] or [CanBeNull] attribute has no effect because the target type already has the same annotation from nullable reference types", - "markdown": "\\[NotNull\\] or \\[CanBeNull\\] attribute has no effect because the target type already has the same annotation from nullable reference types" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantNullnessAttributeWithNullableReferenceTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCoreUninitializedNewArraySize", - "shortDescription": { - "text": "core.uninitialized.NewArraySize clang static analyzer check" - }, - "fullDescription": { - "text": "core.uninitialized.NewArraySize clang static analyzer check · Learn more", - "markdown": "core.uninitialized.NewArraySize clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCoreUninitializedNewArraySize", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StreamReadReturnValueIgnored", - "shortDescription": { - "text": "Actual number of bytes read by 'Stream.Read()' is ignored" - }, - "fullDescription": { - "text": "Use 'Stream.ReadExactly()' instead of 'Read()' to ensure that the number of bytes read from the stream is equal to the expected value", - "markdown": "Use 'Stream.ReadExactly()' instead of 'Read()' to ensure that the number of bytes read from the stream is equal to the expected value" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "StreamReadReturnValueIgnored", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1130", - "shortDescription": { - "text": "RoslynAnalyzers Bitwise operation on enum without Flags attribute" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1130", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantExportKeyword", - "shortDescription": { - "text": "Keyword 'export' is redundant, because there is enclosing export declaration" - }, - "fullDescription": { - "text": "Keyword 'export' is redundant, because there is enclosing export declaration", - "markdown": "Keyword 'export' is redundant, because there is enclosing export declaration" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppRedundantExportKeyword", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Xaml.PathError", - "shortDescription": { - "text": "Path error" - }, - "fullDescription": { - "text": "Path error", - "markdown": "Path error" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Xaml.PathError", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XAML/Potential Code Quality Issues", - "index": 45, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticC2xCompat", - "shortDescription": { - "text": "c2x-compat clang diagnostic" - }, - "fullDescription": { - "text": "-Wc2x-compat clang diagnostic · Learn more", - "markdown": "-Wc2x-compat clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc2x-compat)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticC2xCompat", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceFasterStringFind", - "shortDescription": { - "text": "performance-faster-string-find clang-tidy check" - }, - "fullDescription": { - "text": "performance-faster-string-find clang-tidy check · Learn more", - "markdown": "performance-faster-string-find clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/faster-string-find.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceFasterStringFind", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConditionIsAlwaysTrueOrFalse", - "shortDescription": { - "text": "Expression is always 'true' or always 'false'" - }, - "fullDescription": { - "text": "Value of a boolean expression is always the same at this point Learn more...", - "markdown": "Value of a boolean expression is always the same at this point [Learn more...](https://www.jetbrains.com/help/rider/ConditionIsAlwaysTrueOrFalse.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ConditionIsAlwaysTrueOrFalse", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStringPlusInt", - "shortDescription": { - "text": "string-plus-int clang diagnostic" - }, - "fullDescription": { - "text": "-Wstring-plus-int clang diagnostic · Learn more", - "markdown": "-Wstring-plus-int clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstring-plus-int)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStringPlusInt", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstructorInitializerLoop", - "shortDescription": { - "text": "Possible cyclic constructor call" - }, - "fullDescription": { - "text": "Possible cyclic constructor call Learn more...", - "markdown": "Possible cyclic constructor call [Learn more...](https://www.jetbrains.com/help/rider/ConstructorInitializerLoop.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "ConstructorInitializerLoop", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithFirstOrDefault", - "shortDescription": { - "text": "Replace with FirstOrDefault($args$)" - }, - "fullDescription": { - "text": "If ($seq$.Any($args$), $seq$.First($args$), Nothing)", - "markdown": "If ($seq$.Any($args$), $seq$.First($args$), Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithFirstOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1128", - "shortDescription": { - "text": "RoslynAnalyzers Use coalesce expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1128", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1129", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant field initialization" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1129", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppUseAssociativeContains", - "shortDescription": { - "text": "'contains' member function can be used" - }, - "fullDescription": { - "text": "'contains' member function can be used", - "markdown": "'contains' member function can be used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppUseAssociativeContains", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1124", - "shortDescription": { - "text": "RoslynAnalyzers Inline local variable" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1124", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticMultichar", - "shortDescription": { - "text": "multichar clang diagnostic" - }, - "fullDescription": { - "text": "-Wmultichar clang diagnostic · Learn more", - "markdown": "-Wmultichar clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wmultichar)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticMultichar", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1126", - "shortDescription": { - "text": "RoslynAnalyzers Add braces to if-else" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1126", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppMemberInit", - "shortDescription": { - "text": "hicpp-member-init clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-member-init clang-tidy check · Learn more", - "markdown": "hicpp-member-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/member-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppMemberInit", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1123", - "shortDescription": { - "text": "RoslynAnalyzers Add parentheses when necessary" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1123", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.9", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.All(Function ($x$) $expr$ Is $expr2$)", - "markdown": "!$seq$.All(Function ($x$) $expr$ Is $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.9", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyReadabilityRedundantAccessSpecifiers", - "shortDescription": { - "text": "readability-redundant-access-specifiers clang-tidy check" - }, - "fullDescription": { - "text": "readability-redundant-access-specifiers clang-tidy check · Learn more", - "markdown": "readability-redundant-access-specifiers clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability/redundant-access-specifiers.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyReadabilityRedundantAccessSpecifiers", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticInvalidOffsetof", - "shortDescription": { - "text": "invalid-offsetof clang diagnostic" - }, - "fullDescription": { - "text": "-Winvalid-offsetof clang diagnostic · Learn more", - "markdown": "-Winvalid-offsetof clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#winvalid-offsetof)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticInvalidOffsetof", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPrivateExtern", - "shortDescription": { - "text": "private-extern clang diagnostic" - }, - "fullDescription": { - "text": "-Wprivate-extern clang diagnostic · Learn more", - "markdown": "-Wprivate-extern clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wprivate-extern)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPrivateExtern", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.1", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.Any(Function ($x$) Not $expr$)", - "markdown": "!$seq$.Any(Function ($x$) Not $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.1", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.2", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.All(Function ($x$) Not $expr$)", - "markdown": "!$seq$.All(Function ($x$) Not $expr$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.2", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.3", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.Any(Function ($x$) $expr$ IsNot $expr2$)", - "markdown": "!$seq$.Any(Function ($x$) $expr$ IsNot $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.3", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.4", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.Any(Function ($x$) $expr$ <> $expr2$)", - "markdown": "!$seq$.Any(Function ($x$) $expr$ \\<\\> $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.4", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RazorErrors", - "shortDescription": { - "text": "Razor Errors" - }, - "fullDescription": { - "text": "Razor Errors", - "markdown": "Razor Errors" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "RazorErrors", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Razor/Non configurable", - "index": 107, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.5", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.All(Function ($x$) $expr$ IsNot $expr2$)", - "markdown": "!$seq$.All(Function ($x$) $expr$ IsNot $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.5", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.6", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.All(Function ($x$) $expr$ <> $expr2$)", - "markdown": "!$seq$.All(Function ($x$) $expr$ \\<\\> $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.6", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticStaticLocalInInline", - "shortDescription": { - "text": "static-local-in-inline clang diagnostic" - }, - "fullDescription": { - "text": "-Wstatic-local-in-inline clang diagnostic · Learn more", - "markdown": "-Wstatic-local-in-inline clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wstatic-local-in-inline)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticStaticLocalInInline", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.7", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.Any(Function ($x$) $expr$ Is $expr2$)", - "markdown": "!$seq$.Any(Function ($x$) $expr$ Is $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.7", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBSimplifyLinqExpression.8", - "shortDescription": { - "text": "Simplify expression" - }, - "fullDescription": { - "text": "!$seq$.Any(Function ($x$) $expr$ = $expr2$)", - "markdown": "!$seq$.Any(Function ($x$) $expr$ = $expr2$)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBSimplifyLinqExpression.8", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AccessRightsInText", - "shortDescription": { - "text": "Cannot access symbol in text argument" - }, - "fullDescription": { - "text": "Cannot access symbol in text argument", - "markdown": "Cannot access symbol in text argument" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "AccessRightsInText", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticArcNonPodMemaccess", - "shortDescription": { - "text": "arc-non-pod-memaccess clang diagnostic" - }, - "fullDescription": { - "text": "-Warc-non-pod-memaccess clang diagnostic · Learn more", - "markdown": "-Warc-non-pod-memaccess clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#warc-non-pod-memaccess)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticArcNonPodMemaccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerSecuritySetgidSetuidOrder", - "shortDescription": { - "text": "security.SetgidSetuidOrder clang static analyzer check" - }, - "fullDescription": { - "text": "security.SetgidSetuidOrder clang static analyzer check · Learn more", - "markdown": "security.SetgidSetuidOrder clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerSecuritySetgidSetuidOrder", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1118", - "shortDescription": { - "text": "RoslynAnalyzers Mark local variable as const" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "RCS1118", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1113", - "shortDescription": { - "text": "RoslynAnalyzers Use 'string.IsNullOrEmpty' method" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1113", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1114", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant delegate creation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1114", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WebConfig.RedundantAddNamespaceTag", - "shortDescription": { - "text": "Redundant add namespace element" - }, - "fullDescription": { - "text": "Add namespace element is redundant because it duplicates another element of is cleared later and can be safely removed", - "markdown": "Add namespace element is redundant because it duplicates another element of is cleared later and can be safely removed" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "WebConfig.RedundantAddNamespaceTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Web.Config/Redundancies in Code", - "index": 98, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticCpp11InlineNamespace", - "shortDescription": { - "text": "c++11-inline-namespace clang diagnostic" - }, - "fullDescription": { - "text": "-Wc++11-inline-namespace clang diagnostic · Learn more", - "markdown": "-Wc++11-inline-namespace clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wc-11-inline-namespace)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticCpp11InlineNamespace", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1110", - "shortDescription": { - "text": "RoslynAnalyzers Declare type inside namespace" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1110", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1111", - "shortDescription": { - "text": "RoslynAnalyzers Add braces to switch section with multiple statements" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1111", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1112", - "shortDescription": { - "text": "RoslynAnalyzers Combine 'Enumerable.Where' method chain" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1112", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1151", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant cast" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1151", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EntityFramework.ClientSideDbFunctionCall", - "shortDescription": { - "text": "Database function must not be called in non-database context" - }, - "fullDescription": { - "text": "Reports database-only methods that can produce runtime exceptions when called outside the 'LINQ to Entities' context Learn more...", - "markdown": "Reports database-only methods that can produce runtime exceptions when called outside the 'LINQ to Entities' context [Learn more...](https://www.jetbrains.com/help/rider/EntityFramework.ClientSideDbFunctionCall.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EntityFramework.ClientSideDbFunctionCall", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Entity Framework", - "index": 37, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyModernizeMakeUnique", - "shortDescription": { - "text": "modernize-make-unique clang-tidy check" - }, - "fullDescription": { - "text": "modernize-make-unique clang-tidy check · Learn more", - "markdown": "modernize-make-unique clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize/make-unique.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyModernizeMakeUnique", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppNonExplicitConvertingConstructor", - "shortDescription": { - "text": "Non-explicit converting constructor" - }, - "fullDescription": { - "text": "Non-explicit converting constructor Learn more...", - "markdown": "Non-explicit converting constructor [Learn more...](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-explicit)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppNonExplicitConvertingConstructor", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Common Practices and Code Improvements", - "index": 16, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleBuildUsingNamespace", - "shortDescription": { - "text": "google-build-using-namespace clang-tidy check" - }, - "fullDescription": { - "text": "google-build-using-namespace clang-tidy check · Learn more", - "markdown": "google-build-using-namespace clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/build-using-namespace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleBuildUsingNamespace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseDiscardAssignment", - "shortDescription": { - "text": "Use discard assignment" - }, - "fullDescription": { - "text": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'. Learn more...", - "markdown": "Replace intentionally ignored variable declaration 'var _ = ...' with discard assignment '_ = ...'. [Learn more...](https://www.jetbrains.com/help/rider/UseDiscardAssignment.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "UseDiscardAssignment", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleRuntimeInt", - "shortDescription": { - "text": "google-runtime-int clang-tidy check" - }, - "fullDescription": { - "text": "google-runtime-int clang-tidy check · Learn more", - "markdown": "google-runtime-int clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/runtime-int.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleRuntimeInt", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1146", - "shortDescription": { - "text": "RoslynAnalyzers Use conditional access" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1146", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1142", - "shortDescription": { - "text": "RoslynAnalyzers Add 'typeparam' element to documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1142", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1143", - "shortDescription": { - "text": "RoslynAnalyzers Simplify coalesce expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1143", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ContractAnnotationNotParsed", - "shortDescription": { - "text": "Problem in contract annotation definition" - }, - "fullDescription": { - "text": "Input string in ContractAnnotation attribute could not be parsed Learn more...", - "markdown": "Input string in ContractAnnotation attribute could not be parsed [Learn more...](https://www.jetbrains.com/help/rider/ContractAnnotationNotParsed.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ContractAnnotationNotParsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Constraints Violations", - "index": 80, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1145", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant 'as' operator" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1145", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1140", - "shortDescription": { - "text": "RoslynAnalyzers Add exception to documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1140", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppRedundantDereferencingAndTakingAddress", - "shortDescription": { - "text": "Redundant dereferencing and taking address" - }, - "fullDescription": { - "text": "Redundant dereferencing and taking address", - "markdown": "Redundant dereferencing and taking address" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppRedundantDereferencingAndTakingAddress", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Redundancies in Code", - "index": 34, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticTautologicalBitwiseCompare", - "shortDescription": { - "text": "tautological-bitwise-compare clang diagnostic" - }, - "fullDescription": { - "text": "-Wtautological-bitwise-compare clang diagnostic · Learn more", - "markdown": "-Wtautological-bitwise-compare clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wtautological-bitwise-compare)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticTautologicalBitwiseCompare", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1141", - "shortDescription": { - "text": "RoslynAnalyzers Add 'param' element to documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1141", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBReplaceWithLastOrDefault", - "shortDescription": { - "text": "Replace with LastOrDefault($args$)" - }, - "fullDescription": { - "text": "If ($seq$.Any($args$), $seq$.Last($args$), Nothing)", - "markdown": "If ($seq$.Any($args$), $seq$.Last($args$), Nothing)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VBReplaceWithLastOrDefault", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WithExpressionInsteadOfInitializer", - "shortDescription": { - "text": "'with' expression is used instead of object initializer" - }, - "fullDescription": { - "text": "'with' expression applied to a newly created object instance results in unnecessary clone creation", - "markdown": "'with' expression applied to a newly created object instance results in unnecessary clone creation" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "WithExpressionInsteadOfInitializer", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticExperimentalHeaderUnits", - "shortDescription": { - "text": "experimental-header-units clang diagnostic" - }, - "fullDescription": { - "text": "-Wexperimental-header-units clang diagnostic · Learn more", - "markdown": "-Wexperimental-header-units clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wexperimental-header-units)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticExperimentalHeaderUnits", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullPointerSubtraction", - "shortDescription": { - "text": "null-pointer-subtraction clang diagnostic" - }, - "fullDescription": { - "text": "-Wnull-pointer-subtraction clang diagnostic · Learn more", - "markdown": "-Wnull-pointer-subtraction clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-pointer-subtraction)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullPointerSubtraction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceObjectPatternWithVarPattern", - "shortDescription": { - "text": "Replace object pattern not performing any additional checks with 'var' pattern" - }, - "fullDescription": { - "text": "Replace '{ } x' object pattern not performing any additional checks with 'var x' pattern", - "markdown": "Replace '{ } x' object pattern not performing any additional checks with 'var x' pattern" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ReplaceObjectPatternWithVarPattern", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantExplicitArrayCreation", - "shortDescription": { - "text": "Redundant explicit type in array creation" - }, - "fullDescription": { - "text": "When array type can be inferred from the initializer, you can use an implicitly-typed array Learn more...", - "markdown": "When array type can be inferred from the initializer, you can use an implicitly-typed array [Learn more...](https://www.jetbrains.com/help/rider/RedundantExplicitArrayCreation.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "RedundantExplicitArrayCreation", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SimplifyIIf", - "shortDescription": { - "text": "Simplify 'IIf'" - }, - "fullDescription": { - "text": "'IIf' contains 'True' or 'False' in result branch, for example \r\n IIf(condition, True, elseBranch)\r\n IIf(condition, thenBranch : True)", - "markdown": "'IIf' contains 'True' or 'False' in result branch, for example\n\n```\n\r\n IIf(condition, True, elseBranch)\r\n IIf(condition, thenBranch : True)\r\n \n```" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SimplifyIIf", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Common Practices and Code Improvements", - "index": 40, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1139", - "shortDescription": { - "text": "RoslynAnalyzers Add summary element to documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1139", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1135", - "shortDescription": { - "text": "RoslynAnalyzers Declare enum member with zero value (when enum has FlagsAttribute)" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1135", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1136", - "shortDescription": { - "text": "RoslynAnalyzers Merge switch sections with equivalent content" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1136", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1138", - "shortDescription": { - "text": "RoslynAnalyzers Add summary to documentation comment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1138", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PartialTypeWithSinglePart", - "shortDescription": { - "text": "Redundant 'partial' modifier on type declaration" - }, - "fullDescription": { - "text": "Class is declared as 'partial', but has only one part Learn more...", - "markdown": "Class is declared as 'partial', but has only one part [Learn more...](https://www.jetbrains.com/help/rider/PartialTypeWithSinglePart.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "PartialTypeWithSinglePart", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Symbol Declarations", - "index": 36, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1132", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant overriding member" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1132", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1133", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant Dispose/Close call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1133", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PossibleInvalidOperationExceptionCollectionWasModified", - "shortDescription": { - "text": "Possible 'System.InvalidOperationException: Collection was modified'" - }, - "fullDescription": { - "text": "Modifying the collection could result in a 'System.InvalidOperationException: Collection was modified' in the next foreach iteration", - "markdown": "Modifying the collection could result in a 'System.InvalidOperationException: Collection was modified' in the next foreach iteration" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PossibleInvalidOperationExceptionCollectionWasModified", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1134", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant statement" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1134", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticUnknownPragmas", - "shortDescription": { - "text": "unknown-pragmas clang diagnostic" - }, - "fullDescription": { - "text": "-Wunknown-pragmas clang diagnostic · Learn more", - "markdown": "-Wunknown-pragmas clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wunknown-pragmas)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticUnknownPragmas", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MemberCanBeInternal", - "shortDescription": { - "text": "Member or type can be made internal (friend)" - }, - "fullDescription": { - "text": "Member or type can be made internal (friend)", - "markdown": "Member or type can be made internal (friend)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MemberCanBeInternal", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticDisabledMacroExpansion", - "shortDescription": { - "text": "disabled-macro-expansion clang diagnostic" - }, - "fullDescription": { - "text": "-Wdisabled-macro-expansion clang diagnostic · Learn more", - "markdown": "-Wdisabled-macro-expansion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wdisabled-macro-expansion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticDisabledMacroExpansion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneSharedPtrArrayMismatch", - "shortDescription": { - "text": "bugprone-shared-ptr-array-mismatch clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-shared-ptr-array-mismatch clang-tidy check · Learn more", - "markdown": "bugprone-shared-ptr-array-mismatch clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/shared-ptr-array-mismatch.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneSharedPtrArrayMismatch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyHicppNamedParameter", - "shortDescription": { - "text": "hicpp-named-parameter clang-tidy check" - }, - "fullDescription": { - "text": "hicpp-named-parameter clang-tidy check · Learn more", - "markdown": "hicpp-named-parameter clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/hicpp/named-parameter.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyHicppNamedParameter", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UseFormatSpecifierInFormatString", - "shortDescription": { - "text": "Use format specifier in format strings" - }, - "fullDescription": { - "text": "'.ToString()' call can be replaced with format specifier Learn more...", - "markdown": "'.ToString()' call can be replaced with format specifier [Learn more...](https://www.jetbrains.com/help/rider/UseFormatSpecifierInFormatString.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UseFormatSpecifierInFormatString", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MissingSpace", - "shortDescription": { - "text": "Incorrect spacing (space is missing elsewhere)" - }, - "fullDescription": { - "text": "Space is missing elsewhere Learn more...", - "markdown": "Space is missing elsewhere [Learn more...](https://www.jetbrains.com/help/rider/MissingSpace.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MissingSpace", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Formatting", - "index": 24, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator", - "shortDescription": { - "text": "Foreach loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used" - }, - "fullDescription": { - "text": "A 'foreach' ('For Each' for VB.NET) can be converted into a LINQ-expression but another 'GetEnumerator' method will be used", - "markdown": "A 'foreach' ('For Each' for VB.NET) can be converted into a LINQ-expression but another 'GetEnumerator' method will be used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Language Usage Opportunities", - "index": 7, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerOsxCocoaMissingSuperCall", - "shortDescription": { - "text": "osx.cocoa.MissingSuperCall clang static analyzer check" - }, - "fullDescription": { - "text": "osx.cocoa.MissingSuperCall clang static analyzer check · Learn more", - "markdown": "osx.cocoa.MissingSuperCall clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerOsxCocoaMissingSuperCall", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HeuristicUnreachableCode", - "shortDescription": { - "text": "Heuristically unreachable code" - }, - "fullDescription": { - "text": "Heuristically unreachable code detected Learn more...", - "markdown": "Heuristically unreachable code detected [Learn more...](https://www.jetbrains.com/help/rider/HeuristicUnreachableCode.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "HeuristicUnreachableCode", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantSuppressNullableWarningExpression", - "shortDescription": { - "text": "Redundant nullable warning suppression expression" - }, - "fullDescription": { - "text": "Nullable warning suppression expression does not suppress any warnings and is applied to an already non-nullable operand Learn more...", - "markdown": "Nullable warning suppression expression does not suppress any warnings and is applied to an already non-nullable operand [Learn more...](https://www.jetbrains.com/help/rider/RedundantSuppressNullableWarningExpression.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantSuppressNullableWarningExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Redundancies in Code", - "index": 23, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyBugproneParentVirtualCall", - "shortDescription": { - "text": "bugprone-parent-virtual-call clang-tidy check" - }, - "fullDescription": { - "text": "bugprone-parent-virtual-call clang-tidy check · Learn more", - "markdown": "bugprone-parent-virtual-call clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone/parent-virtual-call.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyBugproneParentVirtualCall", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ArrangeAccessorOwnerBody", - "shortDescription": { - "text": "Use preferred body style (convert into property, indexer, or event with preferred body style)" - }, - "fullDescription": { - "text": "Use expression or block body Learn more...", - "markdown": "Use expression or block body [Learn more...](https://www.jetbrains.com/help/rider/ArrangeAccessorOwnerBody.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "ArrangeAccessorOwnerBody", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Syntax Style", - "index": 21, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NotAccessedPositionalProperty.Global", - "shortDescription": { - "text": "Non-accessed positional property (non-private accessibility)" - }, - "fullDescription": { - "text": "Positional property is never accessed for reading Learn more...", - "markdown": "Positional property is never accessed for reading [Learn more...](https://www.jetbrains.com/help/rider/NotAccessedPositionalProperty.Global.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "NotAccessedPositionalProperty.Global", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticIncompatiblePropertyType", - "shortDescription": { - "text": "incompatible-property-type clang diagnostic" - }, - "fullDescription": { - "text": "-Wincompatible-property-type clang diagnostic · Learn more", - "markdown": "-Wincompatible-property-type clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wincompatible-property-type)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticIncompatiblePropertyType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Mvc.ViewNotResolved", - "shortDescription": { - "text": "MVC (unknown view)" - }, - "fullDescription": { - "text": "Unknown ASP.NET MVC View Learn more...", - "markdown": "Unknown ASP.NET MVC View [Learn more...](https://www.jetbrains.com/help/rider/Mvc.ViewNotResolved.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "Mvc.ViewNotResolved", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Aspx/Potential Code Quality Issues", - "index": 64, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBadAngleBracketsSpaces", - "shortDescription": { - "text": "Incorrect spacing (around angle brackets)" - }, - "fullDescription": { - "text": "Around angle brackets", - "markdown": "Around angle brackets" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppBadAngleBracketsSpaces", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Formatting", - "index": 28, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyGoogleReadabilityAvoidUnderscoreInGoogletestName", - "shortDescription": { - "text": "google-readability-avoid-underscore-in-googletest-name clang-tidy check" - }, - "fullDescription": { - "text": "google-readability-avoid-underscore-in-googletest-name clang-tidy check · Learn more", - "markdown": "google-readability-avoid-underscore-in-googletest-name clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/google/readability-avoid-underscore-in-googletest-name.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyGoogleReadabilityAvoidUnderscoreInGoogletestName", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangAnalyzerCplusplusPureVirtualCall", - "shortDescription": { - "text": "cplusplus.PureVirtualCall clang static analyzer check" - }, - "fullDescription": { - "text": "cplusplus.PureVirtualCall clang static analyzer check · Learn more", - "markdown": "cplusplus.PureVirtualCall clang static analyzer check · [Learn more](https://clang-analyzer.llvm.org/available_checks.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppClangTidyClangAnalyzerCplusplusPureVirtualCall", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Static Analyzer Checks", - "index": 32, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppBoostFormatMixedArgs", - "shortDescription": { - "text": "Positional and non-positional arguments in the same boost::format call" - }, - "fullDescription": { - "text": "An argument of boost::format should contain either positional (%N%, %|N$...|) or serial (%|...|, %s) arguments, not both", - "markdown": "An argument of boost::format should contain either positional (%N%, %\\|N$...\\|) or serial (%\\|...\\|, %s) arguments, not both" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CppBoostFormatMixedArgs", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1106", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty destructor" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1106", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1107", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant 'ToCharArray' call" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1107", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppEnforceFunctionDeclarationStyle", - "shortDescription": { - "text": "Use preferred declaration style (enforce function declaration style)" - }, - "fullDescription": { - "text": "Enforce usage of the trailing return type or the regular return type syntax", - "markdown": "Enforce usage of the trailing return type or the regular return type syntax" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CppEnforceFunctionDeclarationStyle", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Syntax Style", - "index": 91, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1108", - "shortDescription": { - "text": "RoslynAnalyzers Add 'static' modifier to all partial class declarations" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1108", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticNullConversion", - "shortDescription": { - "text": "null-conversion clang diagnostic" - }, - "fullDescription": { - "text": "-Wnull-conversion clang diagnostic · Learn more", - "markdown": "-Wnull-conversion clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wnull-conversion)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticNullConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1102", - "shortDescription": { - "text": "RoslynAnalyzers Make class static" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "RCS1102", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1103", - "shortDescription": { - "text": "RoslynAnalyzers Convert 'if' to assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1103", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1104", - "shortDescription": { - "text": "RoslynAnalyzers Simplify conditional expression" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1104", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1105", - "shortDescription": { - "text": "RoslynAnalyzers Unnecessary interpolation" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1105", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1100", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Format documentation summary on a single line" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1100", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1101", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Format documentation summary on multiple lines" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1101", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticPedanticCoreFeatures", - "shortDescription": { - "text": "pedantic-core-features clang diagnostic" - }, - "fullDescription": { - "text": "-Wpedantic-core-features clang diagnostic · Learn more", - "markdown": "-Wpedantic-core-features clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wpedantic-core-features)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticPedanticCoreFeatures", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyPerformanceNoAutomaticMove", - "shortDescription": { - "text": "performance-no-automatic-move clang-tidy check" - }, - "fullDescription": { - "text": "performance-no-automatic-move clang-tidy check · Learn more", - "markdown": "performance-no-automatic-move clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance/no-automatic-move.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyPerformanceNoAutomaticMove", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticVexingParse", - "shortDescription": { - "text": "vexing-parse clang diagnostic" - }, - "fullDescription": { - "text": "-Wvexing-parse clang diagnostic · Learn more", - "markdown": "-Wvexing-parse clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wvexing-parse)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticVexingParse", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42505", - "shortDescription": { - "text": "The CallerArgumentExpressionAttribute applied to parameter will have no effect. It is applied with an invalid parameter name." - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42505", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppMsExtReinterpretCastFromNullptr", - "shortDescription": { - "text": "Casting from nullptr to pointer type with reinterpret_cast is non-standard Microsoft C++ extension" - }, - "fullDescription": { - "text": "Casting from nullptr to pointer type with reinterpret_cast is non-standard Microsoft C++ extension", - "markdown": "Casting from nullptr to pointer type with reinterpret_cast is non-standard Microsoft C++ extension" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppMsExtReinterpretCastFromNullptr", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Potential Code Quality Issues", - "index": 9, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnreachableSwitchCaseDueToIntegerAnalysis", - "shortDescription": { - "text": "Heuristically unreachable case according to integer analysis" - }, - "fullDescription": { - "text": "Heuristically unreachable case label according to integer analysis Learn more...", - "markdown": "Heuristically unreachable case label according to integer analysis [Learn more...](https://www.jetbrains.com/help/rider/UnreachableSwitchCaseDueToIntegerAnalysis.html)" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "UnreachableSwitchCaseDueToIntegerAnalysis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Potential Code Quality Issues", - "index": 1, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyCppcoreguidelinesInterfacesGlobalInit", - "shortDescription": { - "text": "cppcoreguidelines-interfaces-global-init clang-tidy check" - }, - "fullDescription": { - "text": "cppcoreguidelines-interfaces-global-init clang-tidy check · Learn more", - "markdown": "cppcoreguidelines-interfaces-global-init clang-tidy check · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines/interfaces-global-init.html)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyCppcoreguidelinesInterfacesGlobalInit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang-Tidy Checks", - "index": 8, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VBWarnings__BC42504", - "shortDescription": { - "text": "The CallerArgumentExpressionAttribute applied to parameter will have no effect because it's self-referential" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "VBWarnings__BC42504", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "VB.NET/Compiler Warnings", - "index": 110, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticBoundsSafetyCountedByEltTypeUnknownSize", - "shortDescription": { - "text": "bounds-safety-counted-by-elt-type-unknown-size clang diagnostic" - }, - "fullDescription": { - "text": "-Wbounds-safety-counted-by-elt-type-unknown-size clang diagnostic · Learn more", - "markdown": "-Wbounds-safety-counted-by-elt-type-unknown-size clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wbounds-safety-counted-by-elt-type-unknown-size)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticBoundsSafetyCountedByEltTypeUnknownSize", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1066FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers [deprecated] Remove empty 'finally' clause" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1066FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RCS1212FadeOut", - "shortDescription": { - "text": "RoslynAnalyzers Remove redundant assignment" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RCS1212FadeOut", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Roslyn Analyzers", - "index": 35, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConvertToConstant.Local", - "shortDescription": { - "text": "Convert local variable or field into constant (private accessibility)" - }, - "fullDescription": { - "text": "Convert local variable or field into constant", - "markdown": "Convert local variable or field into constant" - }, - "defaultConfiguration": { - "enabled": true, - "level": "note", - "parameters": { - "suppressToolId": "ConvertToConstant.Local", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C#/Common Practices and Code Improvements", - "index": 12, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CppClangTidyClangDiagnosticGnuOffsetofExtensions", - "shortDescription": { - "text": "gnu-offsetof-extensions clang diagnostic" - }, - "fullDescription": { - "text": "-Wgnu-offsetof-extensions clang diagnostic · Learn more", - "markdown": "-Wgnu-offsetof-extensions clang diagnostic · [Learn more](https://releases.llvm.org/19.1.0/tools/clang/docs/DiagnosticsReference.html#wgnu-offsetof-extensions)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CppClangTidyClangDiagnosticGnuOffsetofExtensions", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "C_C++/Clang Diagnostics", - "index": 3, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OtherTagsInsideScript1", - "shortDescription": { - "text": "Script tag errors (other tags inside \n '", - "markdown": "Reports empty tags that do not work in some browsers.\n\n**Example:**\n\n\n \n \n \n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CheckEmptyScriptTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlUnknownTarget", - "shortDescription": { - "text": "Unresolved file in a link" - }, - "fullDescription": { - "text": "Reports an unresolved file in a link.", - "markdown": "Reports an unresolved file in a link." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlUnknownTarget", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlWrongRootElement", - "shortDescription": { - "text": "Wrong root element" - }, - "fullDescription": { - "text": "Reports a root tag name different from the name specified in the '' tag.", - "markdown": "Reports a root tag name different from the name specified in the `` tag." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XmlWrongRootElement", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlUnknownAttribute", - "shortDescription": { - "text": "Unknown attribute" - }, - "fullDescription": { - "text": "Reports an unknown HTML attribute. Suggests configuring attributes that should not be reported.", - "markdown": "Reports an unknown HTML attribute. Suggests configuring attributes that should not be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlUnknownAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpRedundantEscape", - "shortDescription": { - "text": "Redundant character escape" - }, - "fullDescription": { - "text": "Reports redundant character escape sequences that can be replaced with unescaped characters preserving the meaning. Many escape sequences that are necessary outside of a character class are redundant inside square brackets '[]' of a character class. Although unescaped opening curly braces '{' outside of character classes are allowed in some dialects (JavaScript, Python, and so on), it can cause confusion and make the pattern less portable, because there are dialects that require escaping curly braces as characters. For this reason the inspection does not report escaped opening curly braces. Example: '\\-\\;[\\.]' After the quick-fix is applied: '-;[.]' The Ignore escaped closing brackets '}' and ']' option specifies whether to report '\\}' and '\\]' outside of a character class when they are allowed to be unescaped by the RegExp dialect. New in 2017.3", - "markdown": "Reports redundant character escape sequences that can be replaced with unescaped characters preserving the meaning. Many escape sequences that are necessary outside of a character class are redundant inside square brackets `[]` of a character class.\n\n\nAlthough unescaped opening curly braces `{` outside of character classes are allowed in some dialects (JavaScript, Python, and so on),\nit can cause confusion and make the pattern less portable, because there are dialects that require escaping curly braces as characters.\nFor this reason the inspection does not report escaped opening curly braces.\n\n**Example:**\n\n\n \\-\\;[\\.]\n\nAfter the quick-fix is applied:\n\n\n -;[.]\n\n\nThe **Ignore escaped closing brackets '}' and '\\]'** option specifies whether to report `\\}` and `\\]` outside of a character class\nwhen they are allowed to be unescaped by the RegExp dialect.\n\nNew in 2017.3" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpRedundantEscape", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlExtraClosingTag", - "shortDescription": { - "text": "Redundant closing tag" - }, - "fullDescription": { - "text": "Reports redundant closing tags on empty elements, for example, 'img' or 'br'. Example: '\n \n

\n \n ' After the quick-fix is applied: '\n \n
\n \n '", - "markdown": "Reports redundant closing tags on empty elements, for example, `img` or `br`.\n\n**Example:**\n\n\n \n \n

\n \n \n\nAfter the quick-fix is applied:\n\n\n \n \n
\n \n \n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlExtraClosingTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlDuplicatedId", - "shortDescription": { - "text": "Duplicate 'id' attribute" - }, - "fullDescription": { - "text": "Reports a duplicate 'id' attribute in XML.", - "markdown": "Reports a duplicate `id` attribute in XML." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XmlDuplicatedId", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlUnboundNsPrefix", - "shortDescription": { - "text": "Unbound namespace prefix" - }, - "fullDescription": { - "text": "Reports an unbound namespace prefix in XML.", - "markdown": "Reports an unbound namespace prefix in XML." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XmlUnboundNsPrefix", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlPathReference", - "shortDescription": { - "text": "Unresolved file reference" - }, - "fullDescription": { - "text": "Reports an unresolved file reference in XML.", - "markdown": "Reports an unresolved file reference in XML." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XmlPathReference", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LossyEncoding", - "shortDescription": { - "text": "Lossy encoding" - }, - "fullDescription": { - "text": "Reports characters that cannot be displayed because of the current document encoding. Examples: If you type international characters in a document with the US-ASCII charset, some characters will be lost on save. If you load a UTF-8-encoded file using the ISO-8859-1 one-byte charset, some characters will be displayed incorrectly. You can fix this by changing the file encoding either by specifying the encoding directly in the file, e.g. by editing 'encoding=' attribute in the XML prolog of XML file, or by changing the corresponding options in Settings | Editor | File Encodings.", - "markdown": "Reports characters that cannot be displayed because of the current document encoding.\n\nExamples:\n\n* If you type international characters in a document with the **US-ASCII** charset, some characters will be lost on save.\n* If you load a **UTF-8** -encoded file using the **ISO-8859-1** one-byte charset, some characters will be displayed incorrectly.\n\nYou can fix this by changing the file encoding\neither by specifying the encoding directly in the file, e.g. by editing `encoding=` attribute in the XML prolog of XML file,\nor by changing the corresponding options in **Settings \\| Editor \\| File Encodings**." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LossyEncoding", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Internationalization", - "index": 124, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpRedundantNestedCharacterClass", - "shortDescription": { - "text": "Redundant nested character class" - }, - "fullDescription": { - "text": "Reports unnecessary nested character classes. Example: '[a-c[x-z]]' After the quick-fix is applied: '[a-cx-z]' New in 2020.2", - "markdown": "Reports unnecessary nested character classes.\n\n**Example:**\n\n\n [a-c[x-z]]\n\nAfter the quick-fix is applied:\n\n\n [a-cx-z]\n\nNew in 2020.2" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpRedundantNestedCharacterClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpOctalEscape", - "shortDescription": { - "text": "Octal escape" - }, - "fullDescription": { - "text": "Reports octal escapes, which are easily confused with back references. Use hexadecimal escapes to avoid confusion. Example: '\\07' After the quick-fix is applied: '\\x07' New in 2017.1", - "markdown": "Reports octal escapes, which are easily confused with back references. Use hexadecimal escapes to avoid confusion.\n\n**Example:**\n\n\n \\07\n\nAfter the quick-fix is applied:\n\n\n \\x07\n\nNew in 2017.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RegExpOctalEscape", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedDefine", - "shortDescription": { - "text": "Unused define" - }, - "fullDescription": { - "text": "Reports an unused named pattern ('define') in a RELAX-NG file (XML or Compact Syntax). 'define' elements that are used through an include in another file are ignored.", - "markdown": "Reports an unused named pattern (`define`) in a RELAX-NG file (XML or Compact Syntax). `define` elements that are used through an include in another file are ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedDefine", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RELAX NG", - "index": 136, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpDuplicateAlternationBranch", - "shortDescription": { - "text": "Duplicate branch in alternation" - }, - "fullDescription": { - "text": "Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression. Example: '(alpha|bravo|charlie|alpha)' After the quick-fix is applied: '(alpha|bravo|charlie)' New in 2017.1", - "markdown": "Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression.\n\n**Example:**\n\n\n (alpha|bravo|charlie|alpha)\n\nAfter the quick-fix is applied:\n\n\n (alpha|bravo|charlie)\n\nNew in 2017.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpDuplicateAlternationBranch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantSuppression", - "shortDescription": { - "text": "Redundant suppression" - }, - "fullDescription": { - "text": "Reports usages of the following elements that can be safely removed because the inspection they affect is no longer applicable in this context: '@SuppressWarning' annotation, or '// noinspection' line comment, or '/** noinspection */' JavaDoc comment Example: 'public class C {\n // symbol is already private,\n // but annotation is still around\n @SuppressWarnings({\"WeakerAccess\"})\n private boolean CONST = true;\n void f() {\n CONST = false;\n }\n}'", - "markdown": "Reports usages of the following elements that can be safely removed because the inspection they affect is no longer applicable in this context:\n\n* `@SuppressWarning` annotation, or\n* `// noinspection` line comment, or\n* `/** noinspection */` JavaDoc comment\n\nExample:\n\n\n public class C {\n // symbol is already private,\n // but annotation is still around\n @SuppressWarnings({\"WeakerAccess\"})\n private boolean CONST = true;\n void f() {\n CONST = false;\n }\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantSuppression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CustomRegExpInspection", - "shortDescription": { - "text": "Custom RegExp inspection" - }, - "fullDescription": { - "text": "Custom Regex Inspection", - "markdown": "Custom Regex Inspection" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CustomRegExpInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpUnexpectedAnchor", - "shortDescription": { - "text": "Begin or end anchor in unexpected position" - }, - "fullDescription": { - "text": "Reports '^' or '\\A' anchors not at the beginning of the pattern and '$', '\\Z' or '\\z' anchors not at the end of the pattern. In the wrong position these RegExp anchors prevent the pattern from matching anything. In case of the '^' and '$' anchors, most likely the literal character was meant and the escape forgotten. Example: '(Price $10)' New in 2018.1", - "markdown": "Reports `^` or `\\A` anchors not at the beginning of the pattern and `$`, `\\Z` or `\\z` anchors not at the end of the pattern. In the wrong position these RegExp anchors prevent the pattern from matching anything. In case of the `^` and `$` anchors, most likely the literal character was meant and the escape forgotten.\n\n**Example:**\n\n\n (Price $10)\n\n\nNew in 2018.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpUnexpectedAnchor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SpellCheckingInspection", - "shortDescription": { - "text": "Typo" - }, - "fullDescription": { - "text": "Reports typos and misspellings in your code, comments, and literals and fixes them with one click.", - "markdown": "Reports typos and misspellings in your code, comments, and literals and fixes them with one click." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "SpellCheckingInspection", - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Proofreading", - "index": 122, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpSimplifiable", - "shortDescription": { - "text": "Regular expression can be simplified" - }, - "fullDescription": { - "text": "Reports regular expressions that can be simplified. Example: '[a] xx* [ah-hz]' After the quick-fix is applied: 'a x+ [ahz]' New in 2022.1", - "markdown": "Reports regular expressions that can be simplified.\n\n**Example:**\n\n\n [a] xx* [ah-hz]\n\nAfter the quick-fix is applied:\n\n\n a x+ [ahz]\n\nNew in 2022.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RegExpSimplifiable", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpEmptyAlternationBranch", - "shortDescription": { - "text": "Empty branch in alternation" - }, - "fullDescription": { - "text": "Reports empty branches in a RegExp alternation. An empty branch will only match the empty string, and in most cases that is not what is desired. This inspection will not report a single empty branch at the start or the end of an alternation. Example: '(alpha||bravo)' After the quick-fix is applied: '(alpha|bravo)' New in 2017.2", - "markdown": "Reports empty branches in a RegExp alternation. An empty branch will only match the empty string, and in most cases that is not what is desired. This inspection will not report a single empty branch at the start or the end of an alternation.\n\n**Example:**\n\n\n (alpha||bravo)\n\nAfter the quick-fix is applied:\n\n\n (alpha|bravo)\n\nNew in 2017.2" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpEmptyAlternationBranch", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TodoComment", - "shortDescription": { - "text": "TODO comment" - }, - "fullDescription": { - "text": "Reports TODO comments in your code. You can configure the format for TODO comments in Settings | Editor | TODO. Enable the Only warn on TODO comments without any details option to only warn on empty TODO comments, that don't provide any description on the task that should be done. Disable to report all TODO comments.", - "markdown": "Reports **TODO** comments in your code.\n\nYou can configure the format for **TODO** comments in [Settings \\| Editor \\| TODO](settings://preferences.toDoOptions).\n\nEnable the **Only warn on TODO comments without any details** option to only warn on empty TODO comments, that\ndon't provide any description on the task that should be done. Disable to report all TODO comments." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TodoComment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlDefaultAttributeValue", - "shortDescription": { - "text": "Redundant attribute with default value" - }, - "fullDescription": { - "text": "Reports a redundant assignment of the default value to an XML attribute.", - "markdown": "Reports a redundant assignment of the default value to an XML attribute." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XmlDefaultAttributeValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyDirectory", - "shortDescription": { - "text": "Empty directory" - }, - "fullDescription": { - "text": "Reports empty directories. Available only from Code | Inspect Code or Code | Analyze Code | Run Inspection by Name and isn't reported in the editor. Use the Only report empty directories located under a source folder option to have only directories under source roots reported.", - "markdown": "Reports empty directories.\n\nAvailable only from **Code \\| Inspect Code** or\n**Code \\| Analyze Code \\| Run Inspection by Name** and isn't reported in the editor.\n\nUse the **Only report empty directories located under a source folder** option to have only directories under source\nroots reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EmptyDirectory", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NonAsciiCharacters", - "shortDescription": { - "text": "Non-ASCII characters" - }, - "fullDescription": { - "text": "Reports code elements that use non-ASCII symbols in an unusual context. Example: Non-ASCII characters used in identifiers, strings, or comments. Identifiers written in different languages, such as 'myСollection' with the letter 'C' written in Cyrillic. Comments or strings containing Unicode symbols, such as long dashes and arrows.", - "markdown": "Reports code elements that use non-ASCII symbols in an unusual context.\n\nExample:\n\n* Non-ASCII characters used in identifiers, strings, or comments.\n* Identifiers written in different languages, such as `my`**С**`ollection` with the letter **C** written in Cyrillic.\n* Comments or strings containing Unicode symbols, such as long dashes and arrows." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NonAsciiCharacters", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Internationalization", - "index": 124, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IgnoreFileDuplicateEntry", - "shortDescription": { - "text": "Ignore file duplicates" - }, - "fullDescription": { - "text": "Reports duplicate entries (patterns) in the ignore file (e.g. .gitignore, .hgignore). Duplicate entries in these files are redundant and can be removed. Example: '# Output directories\n /out/\n /target/\n /out/'", - "markdown": "Reports duplicate entries (patterns) in the ignore file (e.g. .gitignore, .hgignore). Duplicate entries in these files are redundant and can be removed.\n\nExample:\n\n\n # Output directories\n /out/\n /target/\n /out/\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IgnoreFileDuplicateEntry", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Version control", - "index": 148, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpSuspiciousBackref", - "shortDescription": { - "text": "Suspicious back reference" - }, - "fullDescription": { - "text": "Reports back references that will not be resolvable at runtime. This means that the back reference can never match anything. A back reference will not be resolvable when the group is defined after the back reference, or if the group is defined in a different branch of an alternation. Example of a group defined after its back reference: '\\1(abc)' Example of a group and a back reference in different branches: 'a(b)c|(xy)\\1z' New in 2022.1", - "markdown": "Reports back references that will not be resolvable at runtime. This means that the back reference can never match anything. A back reference will not be resolvable when the group is defined after the back reference, or if the group is defined in a different branch of an alternation.\n\n**Example of a group defined after its back reference:**\n\n\n \\1(abc)\n\n**Example of a group and a back reference in different branches:**\n\n\n a(b)c|(xy)\\1z\n\nNew in 2022.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpSuspiciousBackref", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnresolvedReference", - "shortDescription": { - "text": "Unresolved reference" - }, - "fullDescription": { - "text": "Reports an unresolved reference to a named pattern ('define') in RELAX-NG files that use XML syntax. Suggests creating the referenced 'define' element.", - "markdown": "Reports an unresolved reference to a named pattern (`define`) in RELAX-NG files that use XML syntax. Suggests creating the referenced `define` element." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "UnresolvedReference", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RELAX NG", - "index": 136, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlMissingClosingTag", - "shortDescription": { - "text": "Missing closing tag" - }, - "fullDescription": { - "text": "Reports an HTML element without a closing tag. Some coding styles require that HTML elements have closing tags even where this is optional. Example: '\n \n

Behold!\n \n ' After the quick-fix is applied: '\n \n

Behold!

\n \n '", - "markdown": "Reports an HTML element without a closing tag. Some coding styles require that HTML elements have closing tags even where this is optional.\n\n**Example:**\n\n\n \n \n

Behold!\n \n \n\nAfter the quick-fix is applied:\n\n\n \n \n

Behold!

\n \n \n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HtmlMissingClosingTag", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlInvalidId", - "shortDescription": { - "text": "Unresolved 'id' reference" - }, - "fullDescription": { - "text": "Reports an unresolved 'id' reference in XML.", - "markdown": "Reports an unresolved `id` reference in XML." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XmlInvalidId", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlDeprecatedElement", - "shortDescription": { - "text": "Deprecated symbol" - }, - "fullDescription": { - "text": "Reports a deprecated XML element or attribute. Symbols can be marked by XML comment or documentation tag with text 'deprecated'.", - "markdown": "Reports a deprecated XML element or attribute.\n\nSymbols can be marked by XML comment or documentation tag with text 'deprecated'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XmlDeprecatedElement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpAnonymousGroup", - "shortDescription": { - "text": "Anonymous capturing group or numeric back reference" - }, - "fullDescription": { - "text": "Reports anonymous capturing groups and numeric back references in a RegExp. These are only reported when the RegExp dialect supports named group and named group references. Named groups and named back references improve code readability and are recommended to use instead. When a capture is not needed, matching can be more performant and use less memory by using a non-capturing group, i.e. '(?:xxx)' instead of '(xxx)'. Example: '(\\d\\d\\d\\d)\\1' A better regex pattern could look like this: '(?\\d\\d\\d\\d)\\k' New in 2017.2", - "markdown": "Reports anonymous capturing groups and numeric back references in a RegExp. These are only reported when the RegExp dialect supports named group and named group references. Named groups and named back references improve code readability and are recommended to use instead. When a capture is not needed, matching can be more performant and use less memory by using a non-capturing group, i.e. `(?:xxx)` instead of `(xxx)`.\n\n**Example:**\n\n\n (\\d\\d\\d\\d)\\1\n\nA better regex pattern could look like this:\n\n\n (?\\d\\d\\d\\d)\\k\n\nNew in 2017.2" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpAnonymousGroup", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlUnresolvedReference", - "shortDescription": { - "text": "Unresolved references" - }, - "fullDescription": { - "text": "Reports an unresolved references in XML.", - "markdown": "Reports an unresolved references in XML." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XmlUnresolvedReference", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpRepeatedSpace", - "shortDescription": { - "text": "Consecutive spaces" - }, - "fullDescription": { - "text": "Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier. Example: '( )' After the quick-fix is applied: '( {5})' New in 2017.1", - "markdown": "Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier.\n\n**Example:**\n\n\n ( )\n\nAfter the quick-fix is applied:\n\n\n ( {5})\n\n\nNew in 2017.1" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpRepeatedSpace", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InconsistentLineSeparators", - "shortDescription": { - "text": "Inconsistent line separators" - }, - "fullDescription": { - "text": "Reports files with line separators different from the ones that are specified in the project's settings. For example, the inspection will be triggered if you set the line separator to '\\n' in Settings | Editor | Code Style | Line separator, while the file you are editing uses '\\r\\n' as a line separator. The inspection also warns you about mixed line separators within a file.", - "markdown": "Reports files with line separators different from the ones that are specified in the project's settings.\n\nFor example, the inspection will be triggered if you set the line separator to `\\n` in\n[Settings \\| Editor \\| Code Style \\| Line separator](settings://preferences.sourceCode?Line%20separator),\nwhile the file you are editing uses `\\r\\n` as a line separator.\n\nThe inspection also warns you about mixed line separators within a file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "InconsistentLineSeparators", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ProblematicWhitespace", - "shortDescription": { - "text": "Problematic whitespace" - }, - "fullDescription": { - "text": "Reports the following problems: Tabs used for indentation when the code style is configured to use only spaces. Spaces used for indentation when the code style is configured to use only tabs. Spaces used for indentation and tabs used for alignment when the code style is configured to use smart tabs.", - "markdown": "Reports the following problems:\n\n* Tabs used for indentation when the code style is configured to use only spaces.\n* Spaces used for indentation when the code style is configured to use only tabs.\n* Spaces used for indentation and tabs used for alignment when the code style is configured to use smart tabs." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ProblematicWhitespace", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LongLine", - "shortDescription": { - "text": "Line is longer than allowed by code style" - }, - "fullDescription": { - "text": "Reports lines that are longer than the Hard wrap at parameter specified in Settings | Editor | Code Style | General.", - "markdown": "Reports lines that are longer than the **Hard wrap at** parameter specified in [Settings \\| Editor \\| Code Style \\| General](settings://preferences.sourceCode?Hard%20wrap%20at)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LongLine", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlUnknownTag", - "shortDescription": { - "text": "Unknown tag" - }, - "fullDescription": { - "text": "Reports an unknown HTML tag. Suggests configuring tags that should not be reported.", - "markdown": "Reports an unknown HTML tag. Suggests configuring tags that should not be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlUnknownTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XmlHighlighting", - "shortDescription": { - "text": "XML highlighting" - }, - "fullDescription": { - "text": "Reports XML validation problems in the results of a batch code inspection.", - "markdown": "Reports XML validation problems in the results of a batch code inspection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XmlHighlighting", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "XML", - "index": 56, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpDuplicateCharacterInClass", - "shortDescription": { - "text": "Duplicate character in character class" - }, - "fullDescription": { - "text": "Reports duplicate characters inside a RegExp character class. Duplicate characters are unnecessary and can be removed without changing the semantics of the regex. Example: '[aabc]' After the quick-fix is applied: '[abc]'", - "markdown": "Reports duplicate characters inside a RegExp character class. Duplicate characters are unnecessary and can be removed without changing the semantics of the regex.\n\n**Example:**\n\n\n [aabc]\n\nAfter the quick-fix is applied:\n\n\n [abc]\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpDuplicateCharacterInClass", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RequiredAttributes", - "shortDescription": { - "text": "Missing required attribute" - }, - "fullDescription": { - "text": "Reports a missing mandatory attribute in an XML/HTML tag. Suggests configuring attributes that should not be reported.", - "markdown": "Reports a missing mandatory attribute in an XML/HTML tag. Suggests configuring attributes that should not be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RequiredAttributes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RegExpRedundantClassElement", - "shortDescription": { - "text": "Redundant '\\d', '[:digit:]', or '\\D' class elements" - }, - "fullDescription": { - "text": "Reports redundant '\\d' or '[:digit:]' that are used in one class with '\\w' or '[:word:]' ('\\D' with '\\W') and can be removed. Example: '[\\w\\d]' After the quick-fix is applied: '[\\w]' New in 2022.2", - "markdown": "Reports redundant `\\d` or `[:digit:]` that are used in one class with `\\w` or `[:word:]` (`\\D` with `\\W`) and can be removed.\n\n**Example:**\n\n\n [\\w\\d]\n\nAfter the quick-fix is applied:\n\n\n [\\w]\n\nNew in 2022.2" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "RegExpRedundantClassElement", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 58, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlWrongAttributeValue", - "shortDescription": { - "text": "Wrong attribute value" - }, - "fullDescription": { - "text": "Reports an incorrect HTML attribute value.", - "markdown": "Reports an incorrect HTML attribute value." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlWrongAttributeValue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MsbuildTargetFrameworkTagInspection", - "shortDescription": { - "text": "TargetFramework tag checks" - }, - "fullDescription": { - "text": "RIDER-83136", - "markdown": "[RIDER-83136](https://youtrack.jetbrains.com/issue/RIDER-83136/)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MsbuildTargetFrameworkTagInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "MSBuild", - "index": 165, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckValidXmlInScriptTagBody", - "shortDescription": { - "text": "Malformed content of 'script' tag" - }, - "fullDescription": { - "text": "Reports contents of 'script' tags that are invalid XML. Example: '' After the quick-fix is applied: ''", - "markdown": "Reports contents of `script` tags that are invalid XML. \n\n**Example:**\n\n\n \n\nAfter the quick-fix is applied:\n\n\n \n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CheckValidXmlInScriptTagBody", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlUnknownAnchorTarget", - "shortDescription": { - "text": "Unresolved fragment in a link" - }, - "fullDescription": { - "text": "Reports an unresolved last part of an URL after the '#' sign.", - "markdown": "Reports an unresolved last part of an URL after the `#` sign." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlUnknownAnchorTarget", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Annotator", - "shortDescription": { - "text": "Annotator" - }, - "fullDescription": { - "text": "Reports issues essential to this file (e.g., syntax errors) in the result of a batch code inspection run. These issues are usually always highlighted in the editor and can't be configured, unlike inspections. These options control the scope of checks performed by this inspection: Option \"Report syntax errors\": report parser-related issues. Option \"Report issues from language-specific annotators\": report issues found by annotators configured for the relevant language. See Custom Language Support: Annotators for details. Option \"Report other highlighting problems\": report issues specific to the language of the current file (e.g., type mismatches or unreported exceptions). See Custom Language Support: Highlighting for details.", - "markdown": "Reports issues essential to this file (e.g., syntax errors) in the result of a batch code inspection run. These issues are usually always highlighted in the editor and can't be configured, unlike inspections. These options control the scope of checks performed by this inspection:\n\n* Option \"**Report syntax errors**\": report parser-related issues.\n* Option \"**Report issues from language-specific annotators** \": report issues found by annotators configured for the relevant language. See [Custom Language Support: Annotators](https://plugins.jetbrains.com/docs/intellij/annotator.html) for details.\n* Option \"**Report other highlighting problems** \": report issues specific to the language of the current file (e.g., type mismatches or unreported exceptions). See [Custom Language Support: Highlighting](https://plugins.jetbrains.com/docs/intellij/syntax-highlighting-and-error-highlighting.html#semantic-highlighting) for details." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "Annotator", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.intellij.plugins.postcss", - "version": "243.24609", - "rules": [ - { - "id": "PostCssUnresolvedModuleValueReference", - "shortDescription": { - "text": "Unresolved CSS module value" - }, - "fullDescription": { - "text": "Reports an unresolved reference to a CSS Module Value ('@value' declaration). Example: '@value foo from unknown;'", - "markdown": "Reports an unresolved reference to a [CSS Module Value](https://github.com/css-modules/postcss-modules-values) (`@value` declaration).\n\nExample:\n\n\n @value foo from unknown;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "PostCssUnresolvedModuleValueReference", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "PostCSS", - "index": 13, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PostCssNesting", - "shortDescription": { - "text": "Invalid nested rule" - }, - "fullDescription": { - "text": "Reports a nested style rule whose syntax doesn't comply with the PostCSS Nested or the PostCSS Nesting specification. Example: '.phone {\n &_title {}\n}'", - "markdown": "Reports a nested style rule whose syntax doesn't comply with the [PostCSS Nested](https://github.com/postcss/postcss-nested) or the [PostCSS Nesting](https://github.com/csstools/postcss-nesting) specification.\n\nExample:\n\n\n .phone {\n &_title {}\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PostCssNesting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "PostCSS", - "index": 13, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PostCssCustomMedia", - "shortDescription": { - "text": "Invalid custom media" - }, - "fullDescription": { - "text": "Reports a syntax error in a PostCSS Custom Media query. Example: '@custom-media --small-viewport (max-width: 30em);'", - "markdown": "Reports a syntax error in a [PostCSS Custom Media](https://github.com/postcss/postcss-custom-media) query.\n\nExample:\n\n\n @custom-media --small-viewport (max-width: 30em);\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "PostCssCustomMedia", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "PostCSS", - "index": 13, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PostCssCustomSelector", - "shortDescription": { - "text": "Invalid custom selector" - }, - "fullDescription": { - "text": "Reports a syntax error in PostCSS Custom Selector. Example: '@custom-selector :--heading h1, h2, h3;'", - "markdown": "Reports a syntax error in [PostCSS Custom Selector](https://github.com/postcss/postcss-custom-selectors).\n\nExample:\n\n\n @custom-selector :--heading h1, h2, h3;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "PostCssCustomSelector", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "PostCSS", - "index": 13, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PostCssMediaRange", - "shortDescription": { - "text": "Invalid media query range" - }, - "fullDescription": { - "text": "Checks range context syntax, which may alternatively be used for media features with a 'range' type. Example: '@media screen and (500px <= width <= 1200px) {}'", - "markdown": "Checks [range context](https://github.com/postcss/postcss-media-minmax) syntax, which may alternatively be used for media features with a 'range' type.\n\nExample:\n\n\n @media screen and (500px <= width <= 1200px) {}\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "PostCssMediaRange", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "PostCSS", - "index": 13, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "JavaScript", - "version": "243.24609", - "rules": [ - { - "id": "ShiftOutOfRangeJS", - "shortDescription": { - "text": "Shift operation by possibly wrong constant" - }, - "fullDescription": { - "text": "Reports a shift operation where the second operand is a constant outside the reasonable range, for example, an integer shift operation outside the range '0..31', shifting by negative or overly large values.", - "markdown": "Reports a shift operation where the second operand is a constant outside the reasonable range, for example, an integer shift operation outside the range `0..31`, shifting by negative or overly large values." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ShiftOutOfRangeJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Bitwise operation issues", - "index": 15, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSClosureCompilerSyntax", - "shortDescription": { - "text": "Incorrect usage of JSDoc tags" - }, - "fullDescription": { - "text": "Reports warnings implied by Google Closure Compiler annotations including correct use of '@abstract', '@interface', and '@implements' tags.", - "markdown": "Reports warnings implied by *Google Closure Compiler* annotations including correct use of `@abstract`, `@interface`, and `@implements` tags." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSClosureCompilerSyntax", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BadExpressionStatementJS", - "shortDescription": { - "text": "Expression statement which is not assignment or call" - }, - "fullDescription": { - "text": "Reports an expression statement that is neither an assignment nor a call. Such statements usually indicate an error.", - "markdown": "Reports an expression statement that is neither an assignment nor a call. Such statements usually indicate an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "BadExpressionStatementJS", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ContinueStatementJS", - "shortDescription": { - "text": "'continue' statement" - }, - "fullDescription": { - "text": "Reports a 'continue' statement.", - "markdown": "Reports a `continue` statement." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ContinueStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSXSyntaxUsed", - "shortDescription": { - "text": "JSX syntax used" - }, - "fullDescription": { - "text": "Reports a usage of a JSX tag in JavaScript code.", - "markdown": "Reports a usage of a JSX tag in JavaScript code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JSXSyntaxUsed", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSJoinVariableDeclarationAndAssignment", - "shortDescription": { - "text": "Variable declaration can be merged with the first assignment to the variable" - }, - "fullDescription": { - "text": "Reports a variable that is declared without an initializer and is used much further in the code or in a single nested scope. Suggests moving the variable closer to its usages and joining it with the initializer expression.", - "markdown": "Reports a variable that is declared without an initializer and is used much further in the code or in a single nested scope. Suggests moving the variable closer to its usages and joining it with the initializer expression." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSJoinVariableDeclarationAndAssignment", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ConvertModuleExportToExport", - "shortDescription": { - "text": "'module.exports' is used instead of 'export'" - }, - "fullDescription": { - "text": "Reports a 'module.export' statement. Suggests replacing it with an 'export' or 'export default' statement. Please note that the quick-fix for converting 'module.export' into 'export' is not available for 'module.export' inside functions or statements because 'export' statements can only be at the top level of a module.", - "markdown": "Reports a `module.export` statement. Suggests replacing it with an `export` or `export default` statement. \n\nPlease note that the quick-fix for converting `module.export` into `export` is not available for `module.export` inside functions or statements because `export` statements can only be at the top level of a module." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ConvertModuleExportToExport", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DocumentWriteJS", - "shortDescription": { - "text": "Call to 'document.write()'" - }, - "fullDescription": { - "text": "Reports a method call to 'document.write()' or 'document.writeln()'. Most usages of such calls are performed better with explicit DOM calls, such as 'getElementByID()' and 'createElement()'. Additionally, the 'write()' and 'writeln()' calls will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can result in difficulty to point out bugs.", - "markdown": "Reports a method call to `document.write()` or `document.writeln()`. Most usages of such calls are performed better with explicit DOM calls, such as `getElementByID()` and `createElement()`. Additionally, the `write()` and `writeln()` calls will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can result in difficulty to point out bugs." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DocumentWriteJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/DOM issues", - "index": 51, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IncompatibleMaskJS", - "shortDescription": { - "text": "Incompatible bitwise mask operation" - }, - "fullDescription": { - "text": "Reports a bitwise mask expression which for sure evaluates to 'true' or 'false'. Expressions are of the form '(var & constant1) == constant2' or '(var | constant1) == constant2', where 'constant1' and 'constant2' are incompatible bitmask constants. Example: '// Incompatible mask: as the last byte in mask is zero,\n// something like 0x1200 would be possible, but not 0x1234\nif ((mask & 0xFF00) == 0x1234) {...}'", - "markdown": "Reports a bitwise mask expression which for sure evaluates to `true` or `false`. Expressions are of the form `(var & constant1) == constant2` or `(var | constant1) == constant2`, where `constant1` and `constant2` are incompatible bitmask constants.\n\nExample:\n\n\n // Incompatible mask: as the last byte in mask is zero,\n // something like 0x1200 would be possible, but not 0x1234\n if ((mask & 0xFF00) == 0x1234) {...}\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IncompatibleBitwiseMaskOperation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Bitwise operation issues", - "index": 15, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSDuplicatedDeclaration", - "shortDescription": { - "text": "Duplicate declaration" - }, - "fullDescription": { - "text": "Reports multiple declarations in a scope.", - "markdown": "Reports multiple declarations in a scope." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSDuplicatedDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptValidateGenericTypes", - "shortDescription": { - "text": "Incorrect generic type argument" - }, - "fullDescription": { - "text": "Reports an invalid type argument in a function, interface, or class declaration.", - "markdown": "Reports an invalid type argument in a function, interface, or class declaration." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "TypeScriptValidateGenericTypes", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSFileReferences", - "shortDescription": { - "text": "Unresolved file reference" - }, - "fullDescription": { - "text": "Reports an unresolved file reference in a JavaScript file, including CommonJS and AMD modules references.", - "markdown": "Reports an unresolved file reference in a JavaScript file, including CommonJS and AMD modules references." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSFileReferences", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FunctionWithInconsistentReturnsJS", - "shortDescription": { - "text": "Function with inconsistent returns" - }, - "fullDescription": { - "text": "Reports a function that returns a value in some cases while in other cases no value is returned. This usually indicates an error. Example: 'function foo() {\n if (true)\n return 3;\n return;\n}'", - "markdown": "Reports a function that returns a value in some cases while in other cases no value is returned. This usually indicates an error.\n\nExample:\n\n\n function foo() {\n if (true)\n return 3;\n return;\n }\n\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionWithInconsistentReturnsJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ClassMemberInitializationOrder", - "shortDescription": { - "text": "Use of possibly unassigned property in a static initializer" - }, - "fullDescription": { - "text": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. Initialization of class members happens consequently for fields, so a field cannot reference another field that is declared later.", - "markdown": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. \n\nInitialization of class members happens consequently for fields, so a field cannot reference another field that is declared later." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ES6ClassMemberInitializationOrder", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedFunctionJS", - "shortDescription": { - "text": "Nested function" - }, - "fullDescription": { - "text": "Reports a function nested inside another function. Although JavaScript allows functions to be nested, such constructs may be confusing. Use the checkbox below to ignore anonymous nested functions.", - "markdown": "Reports a function nested inside another function. Although JavaScript allows functions to be nested, such constructs may be confusing.\n\n\nUse the checkbox below to ignore anonymous nested functions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NestedFunctionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptUMDGlobal", - "shortDescription": { - "text": "Referenced UMD global variable" - }, - "fullDescription": { - "text": "Reports a usage of a Universal Module Definition (UMD) global variable if the current file is a module (ECMAScript or CommonJS). Referencing UMD variables without explicit imports can lead to a runtime error if the library isn't included implicitly.", - "markdown": "Reports a usage of a Universal Module Definition (UMD) global variable if the current file is a module (ECMAScript or CommonJS). Referencing UMD variables without explicit imports can lead to a runtime error if the library isn't included implicitly." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptUMDGlobal", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryReturnJS", - "shortDescription": { - "text": "Unnecessary 'return' statement" - }, - "fullDescription": { - "text": "Reports an unnecessary 'return' statement, that is, a 'return' statement that returns no value and occurs just before the function would have \"fallen through\" the bottom. These statements may be safely removed.", - "markdown": "Reports an unnecessary `return` statement, that is, a `return` statement that returns no value and occurs just before the function would have \"fallen through\" the bottom. These statements may be safely removed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnnecessaryReturnStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StandardJS", - "shortDescription": { - "text": "Standard code style" - }, - "fullDescription": { - "text": "Reports a discrepancy detected by the JavaScript Standard Style linter. The highlighting severity in the editor is based on the severity level the linter reports.", - "markdown": "Reports a discrepancy detected by the [JavaScript Standard Style](https://standardjs.com/) linter. \n\nThe highlighting severity in the editor is based on the severity level the linter reports." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "StandardJS", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code quality tools", - "index": 69, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSCommentMatchesSignature", - "shortDescription": { - "text": "Mismatched JSDoc and function signature" - }, - "fullDescription": { - "text": "Reports mismatch between the names and the number of parameters within a JSDoc comment and the actual parameters of a function. Suggests updating parameters in JSDoc comment. Example: '/**\n * @param height Height in pixels\n */\nfunction sq(height, width) {} // width is not documented' After the quick-fix is applied: '/**\n * @param height Height in pixels\n * @param width\n */\nfunction sq(height, width) {}'", - "markdown": "Reports mismatch between the names and the number of parameters within a JSDoc comment and the actual parameters of a function. Suggests updating parameters in JSDoc comment.\n\n**Example:**\n\n\n /**\n * @param height Height in pixels\n */\n function sq(height, width) {} // width is not documented\n\nAfter the quick-fix is applied:\n\n\n /**\n * @param height Height in pixels\n * @param width\n */\n function sq(height, width) {}\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSCommentMatchesSignature", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FunctionWithMultipleReturnPointsJS", - "shortDescription": { - "text": "Function with multiple return points" - }, - "fullDescription": { - "text": "Reports a function with multiple return points. Such functions are hard to understand and maintain.", - "markdown": "Reports a function with multiple return points. Such functions are hard to understand and maintain." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionWithMultipleReturnPointsJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSRemoveUnnecessaryParentheses", - "shortDescription": { - "text": "Unnecessary parentheses" - }, - "fullDescription": { - "text": "Reports redundant parentheses. In expressions: 'var x = ((1) + 2) + 3' In arrow function argument lists: 'var incrementer = (x) => x + 1' In TypeScript and Flow type declarations: 'type Card = (Suit & Rank) | (Suit & Number)'", - "markdown": "Reports redundant parentheses.\n\nIn expressions:\n\n var x = ((1) + 2) + 3\n\nIn arrow function argument lists:\n\n var incrementer = (x) => x + 1\n\nIn TypeScript and Flow type declarations:\n\n type Card = (Suit & Rank) | (Suit & Number)\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSRemoveUnnecessaryParentheses", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CommaExpressionJS", - "shortDescription": { - "text": "Comma expression" - }, - "fullDescription": { - "text": "Reports a comma expression. Such expressions are often a sign of overly clever code, and may lead to subtle bugs. Comma expressions in the initializer or in the update section of 'for' loops are ignored.", - "markdown": "Reports a comma expression. Such expressions are often a sign of overly clever code, and may lead to subtle bugs. Comma expressions in the initializer or in the update section of `for` loops are ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CommaExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6BindWithArrowFunction", - "shortDescription": { - "text": "Suspicious usage of 'bind' with arrow function" - }, - "fullDescription": { - "text": "Reports 'bind' used together with an arrow function. Because arrow functions use lexical 'this', a 'bind' call will have no effect on them. See here for details.", - "markdown": "Reports `bind` used together with an arrow function. \nBecause arrow functions use lexical `this`, a `bind` call will have no effect on them. \nSee [here](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Lexical_this) for details." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ES6BindWithArrowFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSBitwiseOperatorUsage", - "shortDescription": { - "text": "Bitwise operator usage" - }, - "fullDescription": { - "text": "Reports a suspicious usage of a bitwise AND (\"'&'\") or OR (\"'|'\") operator. Usually it is a typo and the result of applying boolean operations AND (\"'&&'\") and OR (\"'||'\") is expected.", - "markdown": "Reports a suspicious usage of a bitwise AND (\"`&`\") or OR (\"`|`\") operator. Usually it is a typo and the result of applying boolean operations AND (\"`&&`\") and OR (\"`||`\") is expected." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSBitwiseOperatorUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Bitwise operation issues", - "index": 15, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IfStatementWithIdenticalBranchesJS", - "shortDescription": { - "text": "'if' statement with identical branches" - }, - "fullDescription": { - "text": "Reports an 'if' statement with identical 'then' and 'else' branches. Such statements are almost certainly an error.", - "markdown": "Reports an `if` statement with identical `then` and `else` branches. Such statements are almost certainly an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IfStatementWithIdenticalBranchesJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSConsecutiveCommasInArrayLiteral", - "shortDescription": { - "text": "Consecutive commas in array literal" - }, - "fullDescription": { - "text": "Reports a consecutive comma in an array literal. The skipped element accepts the 'undefined' value, but it could be done unintentionally, for example, when commas are at the end of one line and at the beginning of the next one.", - "markdown": "Reports a consecutive comma in an array literal. The skipped element accepts the `undefined` value, but it could be done unintentionally, for example, when commas are at the end of one line and at the beginning of the next one." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSConsecutiveCommasInArrayLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSValidateTypes", - "shortDescription": { - "text": "Type mismatch" - }, - "fullDescription": { - "text": "Reports incorrect type of: a parameter in a function call a return value an assigned expression TypeScript code is ignored.", - "markdown": "Reports incorrect type of:\n\n* a parameter in a function call\n* a return value\n* an assigned expression\n\nTypeScript code is ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSValidateTypes", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSPotentiallyInvalidUsageOfClassThis", - "shortDescription": { - "text": "Potentially invalid reference to 'this' of a class from closure" - }, - "fullDescription": { - "text": "Reports an attempt to reference a member of an ECMAScript class via the 'this.' qualifier in a nested function that is not a lambda. 'this' in a nested function that is not a lambda is the function's own 'this' and doesn't relate to the outer class.", - "markdown": "Reports an attempt to reference a member of an ECMAScript class via the `this.` qualifier in a nested function that is not a lambda. \n`this` in a nested function that is not a lambda is the function's own `this` and doesn't relate to the outer class." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSPotentiallyInvalidUsageOfClassThis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryContinueJS", - "shortDescription": { - "text": "Unnecessary 'continue' statement" - }, - "fullDescription": { - "text": "Reports an unnecessary 'continue' statement at the end of a loop. Suggests removing such statements.", - "markdown": "Reports an unnecessary `continue` statement at the end of a loop. Suggests removing such statements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnnecessaryContinueJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BreakStatementWithLabelJS", - "shortDescription": { - "text": "'break' statement with label" - }, - "fullDescription": { - "text": "Reports a labeled 'break' statement.", - "markdown": "Reports a labeled `break` statement." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "BreakStatementWithLabelJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSDeclarationsAtScopeStart", - "shortDescription": { - "text": "'var' declared not at the beginning of a function" - }, - "fullDescription": { - "text": "Checks that declarations of local variables declared with var are at the top of a function scope. By default, variable declarations are always moved (\"hoisted\") invisibly to the top of their containing scope when the code is executed. Therefore, declaring them at the top of the scope helps represent this behavior in the code.", - "markdown": "Checks that declarations of local variables declared with **var** are at the top of a function scope. \n\nBy default, variable declarations are always moved (\"hoisted\") invisibly to the top of their containing scope when the code is executed. Therefore, declaring them at the top of the scope helps represent this behavior in the code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSDeclarationsAtScopeStart", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ConvertIndexedForToForOf", - "shortDescription": { - "text": "Indexed 'for' is used instead of 'for..of'" - }, - "fullDescription": { - "text": "Reports an indexed 'for' loop used on an array. Suggests replacing it with a 'for..of' loop. 'for..of' loops are introduced in ECMAScript 6 and iterate over 'iterable' objects.", - "markdown": "Reports an indexed [for](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for) loop used on an array. Suggests replacing it with a [for..of](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) loop. \n`for..of` loops are introduced in ECMAScript 6 and iterate over `iterable` objects." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ConvertIndexedForToForOf", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ConvertVarToLetConst", - "shortDescription": { - "text": "'var' is used instead of 'let' or 'const'" - }, - "fullDescription": { - "text": "Reports a 'var' declaration that is used instead of 'let' or 'const'. Both 'let' and 'const' are block-scoped and behave more strictly. Suggests replacing all 'var' declarations with 'let' or 'const' declarations, depending on the semantics of a particular value. The declarations may be moved to the top of the function or placed before the first usage of the variable to avoid Reference errors. Select the 'Conservatively convert var with Fix all action' option to prevent any changes in these complex cases when using the 'Fix all' action.", - "markdown": "Reports a `var` declaration that is used instead of `let` or `const`. \nBoth `let` and `const` are block-scoped and behave more strictly. \n\nSuggests replacing all `var` declarations with `let` or `const` declarations, depending on the semantics of a particular value. The declarations may be moved to the top of the function or placed before the first usage of the variable to avoid Reference errors. \nSelect the 'Conservatively convert var with Fix all action' option to prevent any changes in these complex cases when using the 'Fix all' action." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ConvertVarToLetConst", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DynamicallyGeneratedCodeJS", - "shortDescription": { - "text": "Execution of dynamically generated code" - }, - "fullDescription": { - "text": "Reports a call of the 'eval()', 'setTimeout()', or 'setInterval()' function or an allocation of a 'Function' object. These functions are used to execute arbitrary strings of JavaScript text, which often dynamically generated. This can be very confusing, and may be a security risk. Ignores the cases when a callback function is provided to these methods statically, without code generation.", - "markdown": "Reports a call of the `eval()`, `setTimeout()`, or `setInterval()` function or an allocation of a `Function` object. These functions are used to execute arbitrary strings of JavaScript text, which often dynamically generated. This can be very confusing, and may be a security risk. \n\nIgnores the cases when a callback function is provided to these methods statically, without code generation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DynamicallyGeneratedCodeJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedCatchParameterJS", - "shortDescription": { - "text": "Unused 'catch' parameter" - }, - "fullDescription": { - "text": "Reports a 'catch' parameter that is not used in the corresponding block. The 'catch' parameters named 'ignore' or 'ignored' are ignored. Use the checkbox below to disable this inspection for 'catch' blocks with comments.", - "markdown": "Reports a `catch` parameter that is not used in the corresponding block. The `catch` parameters named `ignore` or `ignored` are ignored.\n\n\nUse the checkbox below to disable this inspection for `catch`\nblocks with comments." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedCatchParameterJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AnonymousFunctionJS", - "shortDescription": { - "text": "Anonymous function" - }, - "fullDescription": { - "text": "Reports an anonymous function. An explicit name of a function expression may be helpful for debugging. Ignores function expressions without names if they have a 'name' property specified in the ECMAScript 6 standard. For example, 'var bar = function() {};' is not reported.", - "markdown": "Reports an anonymous function. An explicit name of a function expression may be helpful for debugging. Ignores function expressions without names if they have a `name` property specified in the ECMAScript 6 standard. For example, `var bar = function() {};` is not reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AnonymousFunctionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyCatchBlockJS", - "shortDescription": { - "text": "Empty 'catch' block" - }, - "fullDescription": { - "text": "Reports an empty 'catch' block. This indicates that errors are simply ignored instead of handling them. Any comment in a 'catch' block mutes the inspection.", - "markdown": "Reports an empty `catch` block. This indicates that errors are simply ignored instead of handling them. \n\nAny comment in a `catch` block mutes the inspection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EmptyCatchBlockJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ThrowFromFinallyBlockJS", - "shortDescription": { - "text": "'throw' inside 'finally' block" - }, - "fullDescription": { - "text": "Reports s 'throw' statement inside a 'finally' block. Such 'throw' statements may mask exceptions thrown, and complicate debugging.", - "markdown": "Reports s `throw` statement inside a `finally` block. Such `throw` statements may mask exceptions thrown, and complicate debugging." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ThrowInsideFinallyBlockJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSPotentiallyInvalidUsageOfThis", - "shortDescription": { - "text": "Potentially invalid reference to 'this' from closure" - }, - "fullDescription": { - "text": "Reports a 'this' in closure that is used for referencing properties of outer context. Example: 'function Outer() {\n this.outerProp = 1;\n function inner() {\n // bad, because 'outerProp' of Outer\n // won't be updated here\n // on calling 'new Outer()' as may be expected\n this.outerProp = 2;\n }\n inner();\n}'", - "markdown": "Reports a `this` in closure that is used for referencing properties of outer context.\n\nExample:\n\n\n function Outer() {\n this.outerProp = 1;\n function inner() {\n // bad, because 'outerProp' of Outer\n // won't be updated here\n // on calling 'new Outer()' as may be expected\n this.outerProp = 2;\n }\n inner();\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSPotentiallyInvalidUsageOfThis", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnresolvedLibraryURL", - "shortDescription": { - "text": "Missed locally stored library for HTTP link" - }, - "fullDescription": { - "text": "Reports a URL of an external JavaScript library that is not associated with any locally stored file. Suggests downloading the library. Such association enables the IDE to provide proper code completion and navigation.", - "markdown": "Reports a URL of an external JavaScript library that is not associated with any locally stored file. Suggests downloading the library. Such association enables the IDE to provide proper code completion and navigation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnresolvedLibraryURL", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptFieldCanBeMadeReadonly", - "shortDescription": { - "text": "Field can be readonly" - }, - "fullDescription": { - "text": "Reports a private field that can be made readonly (for example, if the field is assigned only in the constructor).", - "markdown": "Reports a private field that can be made readonly (for example, if the field is assigned only in the constructor)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptFieldCanBeMadeReadonly", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NegatedIfStatementJS", - "shortDescription": { - "text": "Negated 'if' statement" - }, - "fullDescription": { - "text": "Reports if statements which have an else branch and a negated condition. Flipping the order of the if and else branches will usually increase the clarity of such statements.", - "markdown": "Reports **if** statements which have an **else** branch and a negated condition. Flipping the order of the **if** and **else** branches will usually increase the clarity of such statements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NegatedIfStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConditionalExpressionWithIdenticalBranchesJS", - "shortDescription": { - "text": "Conditional expression with identical branches" - }, - "fullDescription": { - "text": "Reports a ternary conditional expression with identical 'then' and 'else' branches.", - "markdown": "Reports a ternary conditional expression with identical `then` and `else` branches." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConditionalExpressionWithIdenticalBranchesJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSIncompatibleTypesComparison", - "shortDescription": { - "text": "Comparison of expressions having incompatible types" - }, - "fullDescription": { - "text": "Reports a comparison with operands of incompatible types or an operand with a type without possible common values.", - "markdown": "Reports a comparison with operands of incompatible types or an operand with a type without possible common values." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSIncompatibleTypesComparison", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6TopLevelAwaitExpression", - "shortDescription": { - "text": "Top-level 'await' expression" - }, - "fullDescription": { - "text": "Reports a usage of a top-level 'await' expression. While the new 'top-level async' proposal is on its way, using 'await' outside async functions is not allowed.", - "markdown": "Reports a usage of a top-level `await` expression. While the new 'top-level async' proposal is on its way, using `await` outside async functions is not allowed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "ES6TopLevelAwaitExpression", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Async code and promises", - "index": 103, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ParameterNamingConventionJS", - "shortDescription": { - "text": "Function parameter naming convention" - }, - "fullDescription": { - "text": "Reports a function parameter whose name is too short, too long, or doesn't follow the specified regular expression pattern. Use the fields provided below to specify minimum length, maximum length and regular expression expected for local variables names. Use the standard 'java.util.regex' format regular expressions.", - "markdown": "Reports a function parameter whose name is too short, too long, or doesn't follow the specified regular expression pattern.\n\n\nUse the fields provided below to specify minimum length, maximum length and regular expression\nexpected for local variables names. Use the standard `java.util.regex` format regular expressions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ParameterNamingConventionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Naming conventions", - "index": 104, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ParametersPerFunctionJS", - "shortDescription": { - "text": "Function with too many parameters" - }, - "fullDescription": { - "text": "Reports a function with too many parameters. Such functions often indicate problems with design. Use the field below to specify the maximum acceptable number of parameters for a function.", - "markdown": "Reports a function with too many parameters. Such functions often indicate problems with design.\n\n\nUse the field below to specify the maximum acceptable number of parameters for a function." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "OverlyComplexFunctionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSSuspiciousNameCombination", - "shortDescription": { - "text": "Suspicious variable/parameter name combination" - }, - "fullDescription": { - "text": "Reports an assignment or a function call where the name of the target variable or the function parameter does not match the name of the value assigned to it. Example: 'var x = 0;\n var y = x;' or 'var x = 0, y = 0;\n var rc = new Rectangle(y, x, 20, 20);' Here the inspection guesses that 'x' and 'y' are mixed up. Specify the names that should not be used together. An error is reported if a parameter name or an assignment target name contains words from one group while the name of the assigned or passed variable contains words from another group.", - "markdown": "Reports an assignment or a function call where the name of the target variable or the function parameter does not match the name of the value assigned to it.\n\nExample:\n\n\n var x = 0;\n var y = x;\n\nor\n\n\n var x = 0, y = 0;\n var rc = new Rectangle(y, x, 20, 20);\n\nHere the inspection guesses that `x` and `y` are mixed up.\n\nSpecify the names that should not be used together. An error is reported\nif a parameter name or an assignment target name contains words from one group while the name of the assigned or passed\nvariable contains words from another group." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSSuspiciousNameCombination", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ChainedFunctionCallJS", - "shortDescription": { - "text": "Chained function call" - }, - "fullDescription": { - "text": "Reports a function call whose target is another function call, for example, 'foo().bar()'", - "markdown": "Reports a function call whose target is another function call, for example, `foo().bar()`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ChainedFunctionCallJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstantOnLHSOfComparisonJS", - "shortDescription": { - "text": "Constant on left side of comparison" - }, - "fullDescription": { - "text": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons.", - "markdown": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConstantOnLefSideOfComparisonJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSCheckFunctionSignatures", - "shortDescription": { - "text": "Signature mismatch" - }, - "fullDescription": { - "text": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types. TypeScript code is ignored.", - "markdown": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types.\n\nTypeScript code is ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSCheckFunctionSignatures", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptUnresolvedReference", - "shortDescription": { - "text": "Unresolved TypeScript reference" - }, - "fullDescription": { - "text": "Reports an unresolved reference in TypeScript code.", - "markdown": "Reports an unresolved reference in TypeScript code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "TypeScriptUnresolvedReference", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6RedundantAwait", - "shortDescription": { - "text": "Redundant 'await' expression" - }, - "fullDescription": { - "text": "Reports a redundant usage of 'await', such as 'await await', or awaiting a non-promise result. When the 'Report for promises' option is selected, suggests removing 'await' before promises when applicable (in 'return' statements, and with 'Promise.resolve/reject'). Removing 'await' in such contexts causes two problems. Surrounding your code with 'try-catch' and forgetting to add 'await' will change code semantics while you may fail to notice that. Having an explicit 'await' may prevent the V8 runtime from providing async stack traces.", - "markdown": "Reports a redundant usage of `await`, such as `await await`, or awaiting a non-promise result.\n\n\nWhen the 'Report for promises' option is selected, suggests removing `await` before promises when applicable\n(in `return` statements, and with `Promise.resolve/reject`).\n\nRemoving `await` in such contexts causes two problems.\n\n* Surrounding your code with `try-catch` and forgetting to add `await` will change code semantics while you may fail to notice that.\n* Having an explicit `await` may prevent the V8 runtime from providing [async stack traces](http://bit.ly/v8-zero-cost-async-stack-traces)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6RedundantAwait", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Async code and promises", - "index": 103, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AssignmentToFunctionParameterJS", - "shortDescription": { - "text": "Assignment to function parameter" - }, - "fullDescription": { - "text": "Reports an assignment to a function parameter, including increment and decrement operations. Although occasionally intended, this construct can be extremely confusing, and is often a result of an error.", - "markdown": "Reports an assignment to a function parameter, including increment and decrement operations. Although occasionally intended, this construct can be extremely confusing, and is often a result of an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AssignmentToFunctionParameterJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FallThroughInSwitchStatementJS", - "shortDescription": { - "text": "Fallthrough in 'switch' statement" - }, - "fullDescription": { - "text": "Reports a 'switch' statement where control can proceed from a branch to the next one. Such \"fall-through\" often indicates an error, for example, a missing 'break' or 'return'.", - "markdown": "Reports a `switch` statement where control can proceed from a branch to the next one. Such \"fall-through\" often indicates an error, for example, a missing `break` or `return`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FallThroughInSwitchStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CallerJS", - "shortDescription": { - "text": "Use of 'caller' property" - }, - "fullDescription": { - "text": "Reports a usage of the 'caller' property in a JavaScript function. Using this property to access the stack frame of the calling method can be extremely confusing and result in subtle bugs.", - "markdown": "Reports a usage of the `caller` property in a JavaScript function. Using this property to access the stack frame of the calling method can be extremely confusing and result in subtle bugs." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CallerJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSSwitchVariableDeclarationIssue", - "shortDescription": { - "text": "Variable is declared and being used in different 'case' clauses" - }, - "fullDescription": { - "text": "Reports a variable that is declared in one 'case' clause of a 'switch' statement but is used in another 'case' clause of the same statement. For block-scoped variables, this results in throwing a 'ReferenceError'. For 'var' variables, it indicates a potential error. Disable the inspection for 'var' variables if this pattern is used intentionally.", - "markdown": "Reports a variable that is declared in one `case` clause of a `switch` statement but is used in another `case` clause of the same statement. For block-scoped variables, this results in throwing a `ReferenceError`. For `var` variables, it indicates a potential error.\n\nDisable the inspection for `var` variables if this pattern is used intentionally." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSSwitchVariableDeclarationIssue", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReuseOfLocalVariableJS", - "shortDescription": { - "text": "Reuse of local variable" - }, - "fullDescription": { - "text": "Reports reusing a local variable and overwriting its value with a new value that is not related to the original variable usage. Reusing a local variable in this way may be confusing because the intended semantics of the local variable may vary with each usage. It may also cause bugs, if code changes result in values that were expected to be overwritten while they are actually live. It is good practices to keep variable lifetimes as short as possible, and not reuse local variables for the sake of brevity.", - "markdown": "Reports reusing a local variable and overwriting its value with a new value that is not related to the original variable usage. Reusing a local variable in this way may be confusing because the intended semantics of the local variable may vary with each usage. It may also cause bugs, if code changes result in values that were expected to be overwritten while they are actually live. It is good practices to keep variable lifetimes as short as possible, and not reuse local variables for the sake of brevity." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ReuseOfLocalVariableJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Data flow", - "index": 112, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ConvertLetToConst", - "shortDescription": { - "text": "'let' is used instead of 'const'" - }, - "fullDescription": { - "text": "Reports a 'let' declaration that can be made 'const'.", - "markdown": "Reports a `let` declaration that can be made `const`. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ConvertLetToConst", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSReferencingMutableVariableFromClosure", - "shortDescription": { - "text": "Referencing mutable variable from closure" - }, - "fullDescription": { - "text": "Reports access to outer mutable variables from functions. Example: 'for (var i = 1; i <= 3; i++) {\n setTimeout(function() {\n console.log(i); // bad\n }, 0);\n }'", - "markdown": "Reports access to outer mutable variables from functions.\n\nExample:\n\n\n for (var i = 1; i <= 3; i++) {\n setTimeout(function() {\n console.log(i); // bad\n }, 0);\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSReferencingMutableVariableFromClosure", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ConvertRequireIntoImport", - "shortDescription": { - "text": "'require()' is used instead of 'import'" - }, - "fullDescription": { - "text": "Reports a 'require()' statement. Suggests converting it to a 'require()' call with an 'import' statement. Enable 'Convert require() inside inner scopes with Fix all action' to convert all 'require()' calls inside the nested functions and statements when using the 'Fix all' action. Please note that converting 'require()' statements inside inner scopes to 'import' statements may cause changes in the semantics of the code. Import statements are static module dependencies and are hoisted, which means that they are moved to the top of the current module. 'require()' calls load modules dynamically. They can be executed conditionally, and their scope is defined by the expression in which they are used. Clear the 'Convert require() inside inner scopes with Fix all action' checkbox to prevent any changes in these complex cases when using the 'Fix all' action.", - "markdown": "Reports a `require()` statement. Suggests converting it to a `require()` call with an `import` statement. \n\nEnable 'Convert require() inside inner scopes with Fix all action' to convert all `require()` calls inside the nested functions and statements when using the 'Fix all' action. \n\nPlease note that converting `require()` statements inside inner scopes to `import` statements may cause changes in the semantics of the code. Import statements are static module dependencies and are hoisted, which means that they are moved to the top of the current module. `require()` calls load modules dynamically. They can be executed conditionally, and their scope is defined by the expression in which they are used. \nClear the 'Convert require() inside inner scopes with Fix all action' checkbox to prevent any changes in these complex cases when using the 'Fix all' action." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ConvertRequireIntoImport", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnusedGlobalSymbols", - "shortDescription": { - "text": "Unused global symbol" - }, - "fullDescription": { - "text": "Reports an unused globally accessible public function, variable, class, or property.", - "markdown": "Reports an unused globally accessible public function, variable, class, or property." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnusedGlobalSymbols", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Unused symbols", - "index": 117, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedConditionalExpressionJS", - "shortDescription": { - "text": "Nested conditional expression" - }, - "fullDescription": { - "text": "Reports a ternary conditional expression within another ternary condition. Such nested conditionals may be extremely confusing, and best replaced by more explicit conditional logic.", - "markdown": "Reports a ternary conditional expression within another ternary condition. Such nested conditionals may be extremely confusing, and best replaced by more explicit conditional logic." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NestedConditionalExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6PossiblyAsyncFunction", - "shortDescription": { - "text": "'await' in non-async function" - }, - "fullDescription": { - "text": "Reports a usage of 'await' in a function that was possibly intended to be async but is actually missing the 'async' modifier. Although 'await' can be used as an identifier, it is likely that it was intended to be used as an operator, so the containing function should be made 'async'.", - "markdown": "Reports a usage of `await` in a function that was possibly intended to be async but is actually missing the `async` modifier. Although `await` can be used as an identifier, it is likely that it was intended to be used as an operator, so the containing function should be made `async`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6PossiblyAsyncFunction", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Async code and promises", - "index": 103, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FlowJSFlagCommentPlacement", - "shortDescription": { - "text": "Misplaced @flow flag" - }, - "fullDescription": { - "text": "Reports a '@flow' flag comment that is not located at the top of a file.", - "markdown": "Reports a `@flow` flag comment that is not located at the top of a file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FlowJSFlagCommentPlacement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Flow type checker", - "index": 118, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSMissingSwitchDefault", - "shortDescription": { - "text": "'switch' statement has no 'default' branch" - }, - "fullDescription": { - "text": "Reports a 'switch' statement without a 'default' clause when some possible values are not enumerated.", - "markdown": "Reports a `switch` statement without a `default` clause when some possible values are not enumerated." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSMissingSwitchDefault", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSXNamespaceValidation", - "shortDescription": { - "text": "Missing JSX namespace" - }, - "fullDescription": { - "text": "Reports a usage of a JSX construction without importing namespace. Having the namespace in the file scope ensures proper code compilation.", - "markdown": "Reports a usage of a JSX construction without importing namespace. Having the namespace in the file scope ensures proper code compilation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSXNamespaceValidation", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 120, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReservedWordUsedAsNameJS", - "shortDescription": { - "text": "Reserved word used as name" - }, - "fullDescription": { - "text": "Reports a JavaScript reserved word used as a name. The JavaScript specification reserves a number of words which are currently not used as keywords. Using those words as identifiers may result in broken code if later versions of JavaScript start using them as keywords.", - "markdown": "Reports a JavaScript reserved word used as a name. The JavaScript specification reserves a number of words which are currently not used as keywords. Using those words as identifiers may result in broken code if later versions of JavaScript start using them as keywords." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ReservedWordAsName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IncrementDecrementResultUsedJS", - "shortDescription": { - "text": "Result of increment or decrement used" - }, - "fullDescription": { - "text": "Reports an increment ('++') or decrement ('--') expression where the result of the assignment is used in a containing expression. Such assignments can result in confusion due to the order of operations, as evaluation of the assignment may affect the outer expression in unexpected ways. Example: 'var a = b++'", - "markdown": "Reports an increment (`++`) or decrement (`--`) expression where the result of the assignment is used in a containing expression. Such assignments can result in confusion due to the order of operations, as evaluation of the assignment may affect the outer expression in unexpected ways. Example: `var a = b++`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IncrementDecrementResultUsedJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SuspiciousTypeOfGuard", - "shortDescription": { - "text": "Unsound type guard check" - }, - "fullDescription": { - "text": "Reports a 'typeof' or 'instanceof' unsound type guard check. The 'typeof x' type guard can be unsound in one of the following two cases: 'typeof x' never corresponds to the specified value (for example, 'typeof x === 'number'' when 'x' is of the type 'string | boolean') 'typeof x' always corresponds to the specified value (for example, 'typeof x === 'string'' when 'x' is of the type 'string') The 'x instanceof A' type guard can be unsound in one of the following two cases: The type of 'x' is not related to 'A' The type of 'x' is 'A' or a subtype of 'A'", - "markdown": "Reports a `typeof` or `instanceof` unsound type guard check. The `typeof x` type guard can be unsound in one of the following two cases:\n\n* `typeof x` never corresponds to the specified value (for example, `typeof x === 'number'` when `x` is of the type 'string \\| boolean')\n* `typeof x` always corresponds to the specified value (for example, `typeof x === 'string'` when `x` is of the type 'string')\n\nThe `x instanceof A` type guard can be unsound in one of the following two cases:\n\n* The type of `x` is not related to `A`\n* The type of `x` is `A` or a subtype of `A`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SuspiciousTypeOfGuard", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LoopStatementThatDoesntLoopJS", - "shortDescription": { - "text": "Loop statement that doesn't loop" - }, - "fullDescription": { - "text": "Reports a 'for', 'while', or 'do' statement whose bodies are guaranteed to execute at most once. Normally, this indicates an error.", - "markdown": "Reports a `for`, `while`, or `do` statement whose bodies are guaranteed to execute at most once. Normally, this indicates an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LoopStatementThatDoesntLoopJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSNonASCIINames", - "shortDescription": { - "text": "Identifiers with non-ASCII symbols" - }, - "fullDescription": { - "text": "Reports a non-ASCII symbol in a name. If the 'Allow only ASCII names' option is selected, reports all names that contain non-ASCII symbols. Otherwise reports all names that contain both ASCII and non-ASCII symbols.", - "markdown": "Reports a non-ASCII symbol in a name. \n\nIf the 'Allow only ASCII names' option is selected, reports all names that contain non-ASCII symbols. \nOtherwise reports all names that contain both ASCII and non-ASCII symbols." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSNonASCIINames", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Naming conventions", - "index": 104, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6MissingAwait", - "shortDescription": { - "text": "Missing await for an async function call" - }, - "fullDescription": { - "text": "Reports an 'async' function call without an expected 'await' prefix inside an 'async' function. Such call returns a 'Promise' and control flow is continued immediately. Example: 'async function bar() { /* ... */ }\nasync function foo() {\n bar(); // bad\n}' After the quick-fix is applied, the 'await' prefix is added: 'async function bar() { /* ... */ }\nasync function foo() {\n await bar(); // good\n}' When the 'Report for promises in return statements' checkbox is selected, also suggests adding 'await' in return statements. While this is generally not necessary, it gives two main benefits. You won't forget to add 'await' when surrounding your code with 'try-catch'. An explicit 'await' helps V8 runtime to provide async stack traces.", - "markdown": "Reports an `async` function call without an expected `await` prefix inside an `async` function. Such call returns a `Promise` and control flow is continued immediately.\n\nExample:\n\n\n async function bar() { /* ... */ }\n async function foo() {\n bar(); // bad\n }\n\n\nAfter the quick-fix is applied, the `await` prefix is added:\n\n\n async function bar() { /* ... */ }\n async function foo() {\n await bar(); // good\n }\n\nWhen the 'Report for promises in return statements' checkbox is selected, also suggests adding `await` in return statements. \nWhile this is generally not necessary, it gives two main benefits. \n\n* You won't forget to add `await` when surrounding your code with `try-catch`.\n* An explicit `await` helps V8 runtime to provide [async stack traces](https://bit.ly/v8-zero-cost-async-stack-traces)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6MissingAwait", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Async code and promises", - "index": 103, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TailRecursionJS", - "shortDescription": { - "text": "Tail recursion" - }, - "fullDescription": { - "text": "Reports a tail recursion, that is, when a function calls itself as its last action before returning. A tail recursion can always be replaced by looping, which will be considerably faster. Some JavaScript engines perform this optimization, while others do not. Thus, tail recursive solutions may have considerably different performance characteristics in different environments.", - "markdown": "Reports a tail recursion, that is, when a function calls itself as its last action before returning. A tail recursion can always be replaced by looping, which will be considerably faster. Some JavaScript engines perform this optimization, while others do not. Thus, tail recursive solutions may have considerably different performance characteristics in different environments." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TailRecursionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConfusingPlusesOrMinusesJS", - "shortDescription": { - "text": "Confusing sequence of '+' or '-'" - }, - "fullDescription": { - "text": "Reports a suspicious combination of '+' or '-' characters in JavaScript code (for example, 'a+++b'. Such sequences are confusing, and their semantics may change through changes in the whitespace.", - "markdown": "Reports a suspicious combination of `+` or `-` characters in JavaScript code (for example, `a+++b`. Such sequences are confusing, and their semantics may change through changes in the whitespace." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConfusingPlusesOrMinusesJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptConfig", - "shortDescription": { - "text": "Inconsistent tsconfig.json properties" - }, - "fullDescription": { - "text": "Reports inconsistency of a 'paths', 'checkJs', or 'extends' property in a tsconfig.json file. The 'checkJs' property requires 'allowJs'. The 'extends' property should be a valid file reference.", - "markdown": "Reports inconsistency of a `paths`, `checkJs`, or `extends` property in a tsconfig.json file. \nThe `checkJs` property requires `allowJs`. \nThe `extends` property should be a valid file reference." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TypeScriptConfig", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OverlyComplexBooleanExpressionJS", - "shortDescription": { - "text": "Overly complex boolean expression" - }, - "fullDescription": { - "text": "Reports a boolean expression with too many terms. Such expressions may be confusing and bug-prone. Use the field below to specify the maximum number of terms allowed in an arithmetic expression.", - "markdown": "Reports a boolean expression with too many terms. Such expressions may be confusing and bug-prone.\n\n\nUse the field below to specify the maximum number of terms allowed in an arithmetic expression." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "OverlyComplexBooleanExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OverlyComplexArithmeticExpressionJS", - "shortDescription": { - "text": "Overly complex arithmetic expression" - }, - "fullDescription": { - "text": "Reports an arithmetic expression with too many terms. Such expressions may be confusing and bug-prone. Use the field below to specify the maximum number of terms allowed in an arithmetic expression.", - "markdown": "Reports an arithmetic expression with too many terms. Such expressions may be confusing and bug-prone.\n\n\nUse the field below to specify the maximum number of terms allowed in an arithmetic expression." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "OverlyComplexArithmeticExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DuplicateConditionJS", - "shortDescription": { - "text": "Duplicate condition in 'if' statement" - }, - "fullDescription": { - "text": "Reports duplicate conditions in different branches of an 'if' statement. Duplicate conditions usually represent programmer oversight. Example: 'if (a) {\n ...\n } else if (a) {\n ...\n }'", - "markdown": "Reports duplicate conditions in different branches of an `if` statement. Duplicate conditions usually represent programmer oversight.\n\nExample:\n\n\n if (a) {\n ...\n } else if (a) {\n ...\n }\n\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DuplicateConditionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryLabelJS", - "shortDescription": { - "text": "Unnecessary label" - }, - "fullDescription": { - "text": "Reports an unused label.", - "markdown": "Reports an unused label." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnnecessaryLabelJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InnerHTMLJS", - "shortDescription": { - "text": "Use of 'innerHTML' property" - }, - "fullDescription": { - "text": "Reports a JavaScript access to DOM nodes as text using the 'innerHTML' property. Most usages of 'innerHTML' are performed better with explicit DOM calls, such as 'getElementByID()' and 'createElement()'. Additionally, 'innerHTML' will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs.", - "markdown": "Reports a JavaScript access to DOM nodes as text using the `innerHTML` property. Most usages of `innerHTML` are performed better with explicit DOM calls, such as `getElementByID()` and `createElement()`. Additionally, `innerHTML` will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "InnerHTMLJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/DOM issues", - "index": 51, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6UnusedImports", - "shortDescription": { - "text": "Unused import" - }, - "fullDescription": { - "text": "Reports a redundant 'import' statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import 'import 'packageName'' instead of the regular one.", - "markdown": "Reports a redundant `import` statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import `import 'packageName'` instead of the regular one." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ES6UnusedImports", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 120, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSAssignmentUsedAsCondition", - "shortDescription": { - "text": "Assignment used as condition" - }, - "fullDescription": { - "text": "Reports an assignment that is used as the condition of an 'if', 'while', 'for', or 'do' statement. Although occasionally intended, this usage is confusing, and often indicates a typo (for example, '=' instead of '==').", - "markdown": "Reports an assignment that is used as the condition of an `if`, `while`, `for`, or `do` statement. Although occasionally intended, this usage is confusing, and often indicates a typo (for example, `=` instead of `==`)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSAssignmentUsedAsCondition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ForLoopReplaceableByWhileJS", - "shortDescription": { - "text": "'for' loop may be replaced by 'while' loop" - }, - "fullDescription": { - "text": "Reports a 'for' loop that contains neither initialization nor an update component. Suggests replacing the loop with a simpler 'while' statement. Example: 'for(; exitCondition(); ) {\n process();\n }' After the quick-fix is applied the result looks like: 'while(exitCondition()) {\n process();\n }' Use the checkbox below if you wish this inspection to ignore for loops with trivial or non-existent conditions.", - "markdown": "Reports a `for` loop that contains neither initialization nor an update component. Suggests replacing the loop with a simpler `while` statement.\n\nExample:\n\n\n for(; exitCondition(); ) {\n process();\n }\n\nAfter the quick-fix is applied the result looks like:\n\n\n while(exitCondition()) {\n process();\n }\n\nUse the checkbox below if you wish this inspection to ignore **for** loops with trivial or non-existent conditions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ForLoopReplaceableByWhile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstantConditionalExpressionJS", - "shortDescription": { - "text": "Constant conditional expression" - }, - "fullDescription": { - "text": "Reports a conditional expression in the format 'true? result1: result2' or 'false? result1: result2. Suggests simplifying the expression.'", - "markdown": "Reports a conditional expression in the format `true? result1: result2` or `false? result1: result2``.\nSuggests simplifying the expression.\n`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConstantConditionalExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSValidateJSDoc", - "shortDescription": { - "text": "Syntax errors and unresolved references in JSDoc" - }, - "fullDescription": { - "text": "Reports a syntax discrepancy in a documentation comment.", - "markdown": "Reports a syntax discrepancy in a documentation comment." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSValidateJSDoc", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NonBlockStatementBodyJS", - "shortDescription": { - "text": "Statement body without braces" - }, - "fullDescription": { - "text": "Reports a 'if', 'while', 'for', or 'with' statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance.", - "markdown": "Reports a `if`, `while`, `for`, or `with` statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NonBlockStatementBodyJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FlowJSConfig", - "shortDescription": { - "text": "Missing .flowconfig" - }, - "fullDescription": { - "text": "Reports a JavaScript file with a '@flow' flag that doesn't have an associated '.flowconfig' file in the project.", - "markdown": "Reports a JavaScript file with a `@flow` flag that doesn't have an associated `.flowconfig` file in the project." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FlowJSConfig", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Flow type checker", - "index": 118, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptValidateTypes", - "shortDescription": { - "text": "Type mismatch" - }, - "fullDescription": { - "text": "Reports a parameter, return value, or assigned expression of incorrect type.", - "markdown": "Reports a parameter, return value, or assigned expression of incorrect type." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "TypeScriptValidateTypes", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSObjectNullOrUndefined", - "shortDescription": { - "text": "Object is 'null' or 'undefined'" - }, - "fullDescription": { - "text": "Reports an error caused by invoking a method, accessing a property, or calling a function on an object that is 'undefined' or 'null'.", - "markdown": "Reports an error caused by invoking a method, accessing a property, or calling a function on an object that is `undefined` or `null`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSObjectNullOrUndefined", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PointlessArithmeticExpressionJS", - "shortDescription": { - "text": "Pointless arithmetic expression" - }, - "fullDescription": { - "text": "Reports an arithmetic expression that include adding or subtracting zero, multiplying by zero or one, division by one, and shift by zero. Such expressions may result from not fully completed automated refactoring.", - "markdown": "Reports an arithmetic expression that include adding or subtracting zero, multiplying by zero or one, division by one, and shift by zero. Such expressions may result from not fully completed automated refactoring." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PointlessArithmeticExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptSmartCast", - "shortDescription": { - "text": "Narrowed type" - }, - "fullDescription": { - "text": "Reports a usage of a variable where the variable type is narrowed by a type guard. Note that severity level doesn't affect this inspection.", - "markdown": "Reports a usage of a variable where the variable type is narrowed by a type guard. Note that severity level doesn't affect this inspection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TypeScriptSmartCast", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSAccessibilityCheck", - "shortDescription": { - "text": "Inaccessible @private and @protected members referenced" - }, - "fullDescription": { - "text": "Reports a reference to a JavaScript member that is marked with a '@private' or '@protected' tag but does not comply with visibility rules that these tags imply.", - "markdown": "Reports a reference to a JavaScript member that is marked with a `@private` or `@protected` tag but does not comply with visibility rules that these tags imply." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSAccessibilityCheck", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FunctionWithMultipleLoopsJS", - "shortDescription": { - "text": "Function with multiple loops" - }, - "fullDescription": { - "text": "Reports a function with multiple loop statements.", - "markdown": "Reports a function with multiple loop statements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionWithMultipleLoopsJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NpmUsedModulesInstalled", - "shortDescription": { - "text": "Missing module dependency" - }, - "fullDescription": { - "text": "Reports a module from a 'require()' call or an 'import' statement that is not installed or is not listed in package.json dependencies. Suggests installing the module and/or including it into package.json. For 'require()' calls, works only in the files from the scope of Node.js Core JavaScript library.", - "markdown": "Reports a module from a `require()` call or an `import` statement that is not installed or is not listed in package.json dependencies.\n\nSuggests installing the module and/or including it into package.json.\n\nFor `require()` calls, works only in the files from the scope of *Node.js Core* JavaScript library." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "NpmUsedModulesInstalled", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 120, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "FunctionNamingConventionJS", - "shortDescription": { - "text": "Function naming convention" - }, - "fullDescription": { - "text": "Reports a function whose name is too short, too long, or does not follow the specified regular expression pattern. Use the fields provided below to specify minimum length, maximum length, and a regular expression for function names. Use the standard 'java.util.regex' format for regular expressions.", - "markdown": "Reports a function whose name is too short, too long, or does not follow the specified regular expression pattern.\n\n\nUse the fields provided below to specify minimum length, maximum length, and a regular expression\nfor function names. Use the standard `java.util.regex` format for regular expressions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionNamingConventionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Naming conventions", - "index": 104, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ObjectAllocationIgnoredJS", - "shortDescription": { - "text": "Result of object allocation ignored" - }, - "fullDescription": { - "text": "Reports object allocation where the result of the allocated object is ignored, for example, 'new Error();' as a statement, without any assignment. Such allocation expressions may indicate an odd object initialization strategy.", - "markdown": "Reports object allocation where the result of the allocated object is ignored, for example, `new Error();` as a statement, without any assignment. Such allocation expressions may indicate an odd object initialization strategy." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ObjectAllocationIgnored", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSHint", - "shortDescription": { - "text": "JSHint" - }, - "fullDescription": { - "text": "Reports a problem detected by the JSHint linter.", - "markdown": "Reports a problem detected by the [JSHint](https://jshint.com/) linter." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JSHint", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code quality tools", - "index": 69, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ExceptionCaughtLocallyJS", - "shortDescription": { - "text": "Exception used for local control-flow" - }, - "fullDescription": { - "text": "Reports a 'throw' statement whose exceptions are always caught by the containing 'try' statement. Using 'throw' statements as a 'goto' to change the local flow of control is confusing.", - "markdown": "Reports a `throw` statement whose exceptions are always caught by the containing `try` statement. Using `throw` statements as a `goto` to change the local flow of control is confusing." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ExceptionCaughtLocallyJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CyclomaticComplexityJS", - "shortDescription": { - "text": "Overly complex function" - }, - "fullDescription": { - "text": "Reports a function with too many branching points in a function (too high cyclomatic complexity). Such functions may be confusing and hard to test. Use the field provided below to specify the maximum acceptable cyclomatic complexity for a function.", - "markdown": "Reports a function with too many branching points in a function (too high cyclomatic complexity). Such functions may be confusing and hard to test.\n\n\nUse the field provided below to specify the maximum acceptable cyclomatic complexity for a function." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "OverlyComplexFunctionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptJSXUnresolvedComponent", - "shortDescription": { - "text": "Unresolved JSX component" - }, - "fullDescription": { - "text": "Reports an unresolved reference to a JSX component. Suggests adding an import statement if the referenced component is defined in the project or its dependencies or creating a new component with the specified name. The template for a new component can be modified in Editor | File and Code Templates.", - "markdown": "Reports an unresolved reference to a JSX component. Suggests adding an import statement if the referenced component is defined in the project or its dependencies or creating a new component with the specified name.\n\nThe template for a new component can be modified in Editor \\| File and Code Templates." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptJSXUnresolvedComponent", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnfilteredForInLoop", - "shortDescription": { - "text": "Unfiltered for..in loop" - }, - "fullDescription": { - "text": "Reports unfiltered 'for-in' loops. The use of this construct results in processing not only own properties of an object but properties from its prototype as well. It may be unexpected in some specific cases, for example, in utility methods that copy or modify all properties or when 'Object''s prototype may be incorrectly modified. For example, the following code will print 42 and myMethod: 'Object.prototype.myMethod = function myMethod() {};\nlet a = { foo: 42 };\nfor (let i in a) {\n console.log(a[i]);\n}' Suggests replacing the whole loop with a 'Object.keys()' method or adding a 'hasOwnProperty()' check. After applying the quick-fix the code looks as follows: 'for (let i in a) {\n if (a.hasOwnProperty(i)) {\n console.log(a[i]);\n }\n}'", - "markdown": "Reports unfiltered `for-in` loops. \n\nThe use of this construct results in processing not only own properties of an object but properties from its prototype as well. It may be unexpected in some specific cases, for example, in utility methods that copy or modify all properties or when `Object`'s prototype may be incorrectly modified. For example, the following code will print **42** and **myMethod** : \n\n\n Object.prototype.myMethod = function myMethod() {};\n let a = { foo: 42 };\n for (let i in a) {\n console.log(a[i]);\n }\n\nSuggests replacing the whole loop with a `Object.keys()` method or adding a `hasOwnProperty()` check. After applying the quick-fix the code looks as follows:\n\n\n for (let i in a) {\n if (a.hasOwnProperty(i)) {\n console.log(a[i]);\n }\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnfilteredForInLoop", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSFunctionExpressionToArrowFunction", - "shortDescription": { - "text": "Function expression is used instead of arrow function" - }, - "fullDescription": { - "text": "Reports a function expression. Suggests converting it to an arrow function. Example: 'arr.map(function(el) {return el + 1})' After applying the quick-fix the code looks as follows: 'arr.map(el => el + 1)'", - "markdown": "Reports a [function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/function) expression. Suggests converting it to an [arrow function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions).\n\nExample:\n\n arr.map(function(el) {return el + 1})\n\nAfter applying the quick-fix the code looks as follows:\n\n arr.map(el => el + 1)\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSFunctionExpressionToArrowFunction", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UpdateDependencyToLatestVersion", - "shortDescription": { - "text": "Update package.json dependencies to latest versions" - }, - "fullDescription": { - "text": "Suggests to upgrade your package.json dependencies to the latest versions, ignoring specified versions.", - "markdown": "Suggests to upgrade your package.json dependencies to the latest versions, ignoring specified versions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "UpdateDependencyToLatestVersion", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 120, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AssignmentResultUsedJS", - "shortDescription": { - "text": "Result of assignment used" - }, - "fullDescription": { - "text": "Reports an assignment expression where the result of the assignment is used in the containing expression. Such assignments often indicate coding errors, for example, '=' instead of '=='. Moreover, they can result in confusion due to the order of operations, as evaluation of the assignment may affect the outer expression in unexpected ways. Expressions in parentheses are ignored.", - "markdown": "Reports an assignment expression where the result of the assignment is used in the containing expression. Such assignments often indicate coding errors, for example, `=` instead of `==`. Moreover, they can result in confusion due to the order of operations, as evaluation of the assignment may affect the outer expression in unexpected ways.\n\nExpressions in parentheses are ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AssignmentResultUsedJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConstantOnRHSOfComparisonJS", - "shortDescription": { - "text": "Constant on right side of comparison" - }, - "fullDescription": { - "text": "Reports a comparison operation with a constant in the right-hand side. According to coding conventions, constants should only be in the left-hand side of comparisons.", - "markdown": "Reports a comparison operation with a constant in the right-hand side. According to coding conventions, constants should only be in the left-hand side of comparisons." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConstantOnRightSideOfComparisonJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnnecessarySemicolon", - "shortDescription": { - "text": "Unnecessary semicolon" - }, - "fullDescription": { - "text": "Reports an unneeded semicolon.", - "markdown": "Reports an unneeded semicolon." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnnecessarySemicolon", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSSuspiciousEqPlus", - "shortDescription": { - "text": "Suspicious '=+' assignment" - }, - "fullDescription": { - "text": "Reports an assignment in the form 'a =+ b'. Suggests replacing with 'a += b'.", - "markdown": "Reports an assignment in the form `a =+ b`. Suggests replacing with `a += b`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSSuspiciousEqPlus", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnusedAssignment", - "shortDescription": { - "text": "Unused assignment" - }, - "fullDescription": { - "text": "Reports a variable whose value is never used after assignment. Suggests removing the unused variable to shorten the code and to avoid redundant allocations. The following cases are reported: A variable is never read after assignment. The value of a variable is always overwritten with another assignment before the variable is read next time. The initializer of a variable is redundant (for one of the above-mentioned reasons).", - "markdown": "Reports a variable whose value is never used after assignment. \nSuggests removing the unused variable to shorten the code and to avoid redundant allocations.\n\nThe following cases are reported:\n\n* A variable is never read after assignment.\n* The value of a variable is always overwritten with another assignment before the variable is read next time.\n* The initializer of a variable is redundant (for one of the above-mentioned reasons)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnusedAssignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Unused symbols", - "index": 117, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConfusingFloatingPointLiteralJS", - "shortDescription": { - "text": "Confusing floating point literal" - }, - "fullDescription": { - "text": "Reports any floating point number that does not have a decimal point, or any numbers before the decimal point, or and numbers after the decimal point. Such literals may be confusing, and violate several coding standards.", - "markdown": "Reports any floating point number that does not have a decimal point, or any numbers before the decimal point, or and numbers after the decimal point. Such literals may be confusing, and violate several coding standards." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConfusingFloatingPointLiteralJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ContinueOrBreakFromFinallyBlockJS", - "shortDescription": { - "text": "'continue' or 'break' inside 'finally' block" - }, - "fullDescription": { - "text": "Reports a 'break' or 'continue' statement inside a 'finally' block. Such statements are very confusing, may hide exceptions, and complicate debugging.", - "markdown": "Reports a `break` or `continue` statement inside a `finally` block. Such statements are very confusing, may hide exceptions, and complicate debugging." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ContinueOrBreakFromFinallyBlockJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSMethodCanBeStatic", - "shortDescription": { - "text": "Method can be made 'static'" - }, - "fullDescription": { - "text": "Reports a class method that can be safely made 'static'. A method can be 'static' if it does not reference any of its class' non-static methods and non-static fields and is not overridden in a subclass. Use the first checkbox below to inspect only 'private' methods.", - "markdown": "Reports a class method that can be safely made `static`. A method can be `static` if it does not reference any of its class' non-static methods and non-static fields and is not overridden in a subclass.\n\n\nUse the first checkbox below to inspect only `private` methods." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSMethodCanBeStatic", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUndeclaredVariable", - "shortDescription": { - "text": "Implicitly declared global JavaScript variable" - }, - "fullDescription": { - "text": "Reports an implicit declaration of a global variable. Example: 'var aaa = 1; // good\n bbb = 2; // bad, if bbb is not declared with 'var' somewhere'", - "markdown": "Reports an implicit declaration of a global variable.\n\nExample:\n\n\n var aaa = 1; // good\n bbb = 2; // bad, if bbb is not declared with 'var' somewhere\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSUndeclaredVariable", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SillyAssignmentJS", - "shortDescription": { - "text": "Variable is assigned to itself" - }, - "fullDescription": { - "text": "Reports an assignment in the form 'x = x'.", - "markdown": "Reports an assignment in the form `x = x`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SillyAssignmentJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptCheckImport", - "shortDescription": { - "text": "Unresolved imported name" - }, - "fullDescription": { - "text": "Reports an unresolved name or binding in an 'import' declaration in TypeScript code.", - "markdown": "Reports an unresolved name or binding in an `import` declaration in TypeScript code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "TypeScriptCheckImport", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InfiniteRecursionJS", - "shortDescription": { - "text": "Infinite recursion" - }, - "fullDescription": { - "text": "Reports a function which must either recurse infinitely or throw an exception. Such functions may not return normally.", - "markdown": "Reports a function which must either recurse infinitely or throw an exception. Such functions may not return normally." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "InfiniteRecursionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSMismatchedCollectionQueryUpdate", - "shortDescription": { - "text": "Mismatched query and update of collection" - }, - "fullDescription": { - "text": "Reports a collection of fields or variables whose contents are either queried and not updated or updated and not queried. Such mismatched queries and updates are pointless and may indicate either dead code or a typographical error. Query methods are automatically detected, based on whether they return something, or a callback is passed to them. Use the table below to specify which methods are update methods.", - "markdown": "Reports a collection of fields or variables whose contents are either queried and not updated or updated and not queried. Such mismatched queries and updates are pointless and may indicate either dead code or a typographical error.\n\n\nQuery methods are automatically detected, based on whether they return something, or a callback is passed to them.\nUse the table below to specify which methods are update methods." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSMismatchedCollectionQueryUpdate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6PreferShortImport", - "shortDescription": { - "text": "Import can be shortened" - }, - "fullDescription": { - "text": "Reports an ES6 import whose 'from' part can be shortened. Suggests importing the parent directory.", - "markdown": "Reports an ES6 import whose `from` part can be shortened. Suggests importing the parent directory." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ES6PreferShortImport", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PointlessBitwiseExpressionJS", - "shortDescription": { - "text": "Bitwise expression can be simplified" - }, - "fullDescription": { - "text": "Reports an expression that includes 'and' with zero, 'or' by zero, or shifting by zero. Such expressions may result from not fully completed automated refactorings.", - "markdown": "Reports an expression that includes `and` with zero, `or` by zero, or shifting by zero. Such expressions may result from not fully completed automated refactorings." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PointlessBitwiseExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Bitwise operation issues", - "index": 15, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSStringConcatenationToES6Template", - "shortDescription": { - "text": "String concatenation is used instead of template literal" - }, - "fullDescription": { - "text": "Reports a string concatenation. Suggests replacing it with a template literal Example '\"result: \" + a + \".\"' After applying the quick-fix the code looks as follows: '`result: ${a}.`'", - "markdown": "Reports a string concatenation. Suggests replacing it with a [template literal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals)\n\nExample\n\n \"result: \" + a + \".\" \n\nAfter applying the quick-fix the code looks as follows:\n\n `result: ${a}.` \n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSStringConcatenationToES6Template", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ReplaceAssignmentWithOperatorAssignmentJS", - "shortDescription": { - "text": "Assignment could be replaced with operator assignment" - }, - "fullDescription": { - "text": "Reports an assignment operation that can be replaced by an operator assignment to make your code shorter and probably clearer. Example: 'x = x + 3;'\n 'x = x / 3;'\n After the quick fix is applied the result looks like: 'x += 3;'\n 'x /= 3;'", - "markdown": "Reports an assignment operation that can be replaced by an operator assignment to make your code shorter and probably clearer.\n\n\nExample:\n\n x = x + 3;\n x = x / 3;\n\nAfter the quick fix is applied the result looks like:\n\n x += 3;\n x /= 3;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AssignmentReplaceableWithOperatorAssignmentJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6DestructuringVariablesMerge", - "shortDescription": { - "text": "Destructuring properties with the same key" - }, - "fullDescription": { - "text": "Reports multiple destructuring properties with identical keys. Suggests merging the properties.", - "markdown": "Reports multiple destructuring properties with identical keys. Suggests merging the properties." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6DestructuringVariablesMerge", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptRedundantGenericType", - "shortDescription": { - "text": "Redundant type arguments" - }, - "fullDescription": { - "text": "Reports a type argument that is equal to the default one and can be removed. Example: 'type Foo = T;\nlet z: Foo;'", - "markdown": "Reports a type argument that is equal to the default one and can be removed.\n\n\nExample:\n\n\n type Foo = T;\n let z: Foo;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptRedundantGenericType", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSLastCommaInObjectLiteral", - "shortDescription": { - "text": "Unneeded last comma in object literal" - }, - "fullDescription": { - "text": "Reports usages of a trailing comma in object literals. The warning is reported only when the JavaScript language version is set to ECMAScript 5.1. Trailing commas in object literals are allowed by the specification, however, some browsers might throw an error when a trailing comma is used. You can configure formatting options for trailing commas in Code Style | JavaScript or TypeScript | Punctuation.", - "markdown": "Reports usages of a trailing comma in object literals.\n\nThe warning is reported only when the JavaScript language version is set to ECMAScript 5.1.\n\nTrailing commas in object literals are allowed by the specification, however, some browsers might throw an error when a trailing comma is used.\n\nYou can configure formatting options for trailing commas in **Code Style** \\| **JavaScript** or **TypeScript** \\| **Punctuation**." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSLastCommaInObjectLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedAssignmentJS", - "shortDescription": { - "text": "Nested assignment" - }, - "fullDescription": { - "text": "Reports an assignment expression nested inside another expression, for example, 'a = b = 1'. Such expressions may be confusing and violate the general design principle that a given construct should do precisely one thing.", - "markdown": "Reports an assignment expression nested inside another expression, for example, `a = b = 1`. Such expressions may be confusing and violate the general design principle that a given construct should do precisely one thing." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NestedAssignmentJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DefaultNotLastCaseInSwitchJS", - "shortDescription": { - "text": "'default' not last case in 'switch'" - }, - "fullDescription": { - "text": "Reports a 'switch' statement where the 'default' case comes before another case instead of being the very last case, which may cause confusion.", - "markdown": "Reports a `switch` statement where the `default` case comes before another case instead of being the very last case, which may cause confusion." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DefaultNotLastCaseInSwitchJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyFinallyBlockJS", - "shortDescription": { - "text": "Empty 'finally' block" - }, - "fullDescription": { - "text": "Reports an empty 'finally' block, which usually indicates an error.", - "markdown": "Reports an empty `finally` block, which usually indicates an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EmptyFinallyBlockJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ForLoopThatDoesntUseLoopVariableJS", - "shortDescription": { - "text": "'for' loop where update or condition does not use loop variable" - }, - "fullDescription": { - "text": "Reports a 'for' loop where the condition or update does not use the 'for' loop variable.", - "markdown": "Reports a `for` loop where the condition or update does not use the `for` loop variable." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ForLoopThatDoesntUseLoopVariableJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptAbstractClassConstructorCanBeMadeProtected", - "shortDescription": { - "text": "Abstract class constructor can be made protected" - }, - "fullDescription": { - "text": "Reports a public constructor of an abstract class and suggests making it protected (because it is useless to have it public).", - "markdown": "Reports a public constructor of an abstract class and suggests making it protected (because it is useless to have it public)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptAbstractClassConstructorCanBeMadeProtected", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ThreeNegationsPerFunctionJS", - "shortDescription": { - "text": "Function with more than three negations" - }, - "fullDescription": { - "text": "Reports a function with three or more negation operations ('!' or '!='). Such functions may be unnecessarily confusing.", - "markdown": "Reports a function with three or more negation operations (`!` or `!=`). Such functions may be unnecessarily confusing." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "FunctionWithMoreThanThreeNegationsJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TrivialIfJS", - "shortDescription": { - "text": "Redundant 'if' statement" - }, - "fullDescription": { - "text": "Reports an 'if' statement that can be simplified to a single assignment or a 'return' statement. Example: 'if(foo())\n {\n return true;\n }\n else\n {\n return false;\n }' After applying the quick-fix the code looks as follows: 'return foo();'", - "markdown": "Reports an `if` statement that can be simplified to a single assignment or a `return` statement.\n\nExample:\n\n\n if(foo())\n {\n return true;\n }\n else\n {\n return false;\n }\n\nAfter applying the quick-fix the code looks as follows:\n\n return foo();\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantIfStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnterminatedStatementJS", - "shortDescription": { - "text": "Unterminated statement" - }, - "fullDescription": { - "text": "Reports a statement without a semicolon or a newline at the end. Select the 'Terminate statements with semicolons' option in Editor | Code Style | JavaScript or TypeScript - Punctuation to report any statement that doesn't end with a semicolon, even if a newline is used. According to some coding styles, semicolons are preferred to line-breaks for consistency with the other languages.", - "markdown": "Reports a statement without a semicolon or a newline at the end.\n\nSelect the 'Terminate statements with semicolons' option in *Editor \\| Code Style \\| JavaScript or TypeScript - Punctuation* to report any statement that doesn't end with a semicolon, even if a newline is used.\nAccording to some coding styles, semicolons are preferred to line-breaks for consistency with the other languages." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnterminatedStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnreachableSwitchBranches", - "shortDescription": { - "text": "Unreachable 'case' branch of a 'switch' statement" - }, - "fullDescription": { - "text": "Reports an unreachable 'case' branch of a 'switch' statement. Example: '/**\n * @param {('foo' | 'bar')} p\n */\nfunction foo(p) {\n switch (p) {\n case 'foo': break;\n case 'bar': break;\n case 'baz': break; // unreachable\n }\n}'", - "markdown": "Reports an unreachable `case` branch of a `switch` statement.\n\nExample:\n\n\n /**\n * @param {('foo' | 'bar')} p\n */\n function foo(p) {\n switch (p) {\n case 'foo': break;\n case 'bar': break;\n case 'baz': break; // unreachable\n }\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnreachableSwitchBranches", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TrivialConditionalJS", - "shortDescription": { - "text": "Redundant conditional expression" - }, - "fullDescription": { - "text": "Reports a conditional expression of the form 'condition ? true : false\ncondition ? false : true' These expressions may be safely converted to 'condition\n!condition'", - "markdown": "Reports a conditional expression of the form\n\n\n condition ? true : false\n condition ? false : true\n\n\nThese expressions may be safely converted to\n\n\n condition\n !condition\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantConditionalExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSTestFailedLine", - "shortDescription": { - "text": "Highlight failure line in test code" - }, - "fullDescription": { - "text": "Reports a failed method call or an assertion in a test.", - "markdown": "Reports a failed method call or an assertion in a test." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSTestFailedLine", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Unit testing", - "index": 140, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IfStatementWithTooManyBranchesJS", - "shortDescription": { - "text": "'if' statement with too many branches" - }, - "fullDescription": { - "text": "Reports an 'if' statement with too many branches. Such statements may be confusing, and often indicate inadequate levels of design abstraction. Use the field below to specify the maximum number of branches expected.", - "markdown": "Reports an `if` statement with too many branches. Such statements may be confusing, and often indicate inadequate levels of design abstraction.\n\n\nUse the field below to specify the maximum number of branches expected." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IfStatementWithTooManyBranchesJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BreakStatementJS", - "shortDescription": { - "text": "'break' statement" - }, - "fullDescription": { - "text": "Reports a 'break' statements. Ignores 'break' statements that end case blocks.", - "markdown": "Reports a `break` statements. Ignores `break` statements that end case blocks." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "BreakStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DebuggerStatementJS", - "shortDescription": { - "text": "'debugger' statement" - }, - "fullDescription": { - "text": "Reports a 'debugger' statement used for interaction with the Javascript debuggers. Such statements should not appear in production code.", - "markdown": "Reports a `debugger` statement used for interaction with the Javascript debuggers. Such statements should not appear in production code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DebuggerStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AssignmentToForLoopParameterJS", - "shortDescription": { - "text": "Assignment to 'for' loop parameter" - }, - "fullDescription": { - "text": "Reports an assignment to a variable declared as a 'for' loop parameter. Although occasionally intended, this construct can be extremely confusing, and is often a result of an error.", - "markdown": "Reports an assignment to a variable declared as a `for` loop parameter. Although occasionally intended, this construct can be extremely confusing, and is often a result of an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AssignmentToForLoopParameterJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Assignment issues", - "index": 108, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ConditionalExpressionJS", - "shortDescription": { - "text": "Conditional expression" - }, - "fullDescription": { - "text": "Reports a ternary conditional expression. Some coding standards prohibit such expressions in favor of explicit 'if' statements.", - "markdown": "Reports a ternary conditional expression. Some coding standards prohibit such expressions in favor of explicit `if` statements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ConditionalExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PointlessBooleanExpressionJS", - "shortDescription": { - "text": "Pointless statement or boolean expression" - }, - "fullDescription": { - "text": "Reports a pointless or pointlessly complicated boolean expression or statement. Example: 'let a = !(false && x);\n let b = false || x;' After the quick fix is applied the result looks like: 'let a = true;\n let b = x;'", - "markdown": "Reports a pointless or pointlessly complicated boolean expression or statement.\n\nExample:\n\n\n let a = !(false && x);\n let b = false || x;\n\nAfter the quick fix is applied the result looks like:\n\n\n let a = true;\n let b = x;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PointlessBooleanExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUrlImportUsage", - "shortDescription": { - "text": "URL import is used" - }, - "fullDescription": { - "text": "Checks used URL imports in the JavaScript language. Suggests downloading the module for the specified remote URL. Such association enables the IDE to provide proper code completion and navigation. URLs in import specifiers are supported only for ECMAScript modules in the JavaScript language.", - "markdown": "Checks used URL imports in the JavaScript language. Suggests downloading the module for the specified remote URL. Such association enables the IDE to provide proper code completion and navigation. \n\nURLs in import specifiers are supported only for ECMAScript modules in the JavaScript language." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSUrlImportUsage", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 120, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryLabelOnContinueStatementJS", - "shortDescription": { - "text": "Unnecessary label on 'continue' statement" - }, - "fullDescription": { - "text": "Reports a labeled 'continue' statement whose labels may be removed without changing the flow of control.", - "markdown": "Reports a labeled `continue` statement whose labels may be removed without changing the flow of control." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnnecessaryLabelOnContinueStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSPotentiallyInvalidTargetOfIndexedPropertyAccess", - "shortDescription": { - "text": "Possibly incorrect target of indexed property access" - }, - "fullDescription": { - "text": "Reports a potentially invalid indexed property access, for example, 'Array[1]'.", - "markdown": "Reports a potentially invalid indexed property access, for example, `Array[1]`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSPotentiallyInvalidTargetOfIndexedPropertyAccess", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSTypeOfValues", - "shortDescription": { - "text": "'typeof' comparison with non-standard value" - }, - "fullDescription": { - "text": "Reports a comparison of a 'typeof' expression with a literal string which is not one of the standard types: 'undefined', 'object', 'boolean', 'number', 'string', 'function', or 'symbol'. Such comparisons always return 'false'.", - "markdown": "Reports a comparison of a `typeof` expression with a literal string which is not one of the standard types: `undefined`, `object`, `boolean`, `number`, `string`, `function`, or `symbol`. Such comparisons always return `false`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSTypeOfValues", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XHTMLIncompatabilitiesJS", - "shortDescription": { - "text": "Incompatible XHTML usages" - }, - "fullDescription": { - "text": "Reports common JavaScript DOM patterns which may present problems with XHTML documents. In particular, the patterns detected will behave completely differently depending on whether the document is loaded as XML or HTML. This can result in subtle bugs where script behaviour is dependent on the MIME-type of the document, rather than its content. Patterns detected include document.body, document.images, document.applets, document.links, document.forms, and document.anchors.", - "markdown": "Reports common JavaScript DOM patterns which may present problems with XHTML documents. In particular, the patterns detected will behave completely differently depending on whether the document is loaded as XML or HTML. This can result in subtle bugs where script behaviour is dependent on the MIME-type of the document, rather than its content. Patterns detected include **document.body** , **document.images** , **document.applets** , **document.links** , **document.forms** , and **document.anchors**." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XHTMLIncompatabilitiesJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/DOM issues", - "index": 51, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSAnnotator", - "shortDescription": { - "text": "ECMAScript specification is not followed" - }, - "fullDescription": { - "text": "Reports basic syntax issues and inconsistencies with language specification, such as invalid usages of keywords, usages of incompatible numeric format, or multiple parameters to getters/setters. Generally, such errors must always be reported and shouldn't be disabled. But in some cases, such as issues due to the dynamic nature of JavaScript, the use of not yet supported language features, or bugs in IDE's checker, it may be handy to disable reporting these very basic errors.", - "markdown": "Reports basic syntax issues and inconsistencies with language specification, such as invalid usages of keywords, usages of incompatible numeric format, or multiple parameters to getters/setters. \nGenerally, such errors must always be reported and shouldn't be disabled. But in some cases, such as issues due to the dynamic nature of JavaScript, the use of not yet supported language features, or bugs in IDE's checker, it may be handy to disable reporting these very basic errors." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JSAnnotator", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6ConvertToForOf", - "shortDescription": { - "text": "'for..in' is used instead of 'for..of'" - }, - "fullDescription": { - "text": "Reports a usage of a 'for..in' loop on an array. Suggests replacing it with a 'for..of' loop. 'for..of' loops, which are introduced in ECMAScript 6, iterate over 'iterable' objects. For arrays, this structure is preferable to 'for..in', because it works only with array values but not with array object's properties.", - "markdown": "Reports a usage of a [for..in](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in) loop on an array. Suggests replacing it with a [for..of](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) loop. \n`for..of` loops, which are introduced in ECMAScript 6, iterate over `iterable` objects. For arrays, this structure is preferable to `for..in`, because it works only with array values but not with array object's properties." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6ConvertToForOf", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 49, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ThisExpressionReferencesGlobalObjectJS", - "shortDescription": { - "text": "'this' expression which references the global object" - }, - "fullDescription": { - "text": "Reports a 'this' expression outside an object literal or a constructor body. Such 'this' expressions reference the top-level \"global\" JavaScript object, but are mostly useless.", - "markdown": "Reports a `this` expression outside an object literal or a constructor body. Such `this` expressions reference the top-level \"global\" JavaScript object, but are mostly useless." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ThisExpressionReferencesGlobalObjectJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedFunctionCallJS", - "shortDescription": { - "text": "Nested function call" - }, - "fullDescription": { - "text": "Reports a function call that is used as an argument in another function call, for example, 'foo(bar())'", - "markdown": "Reports a function call that is used as an argument in another function call, for example, `foo(bar())`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NestedFunctionCallJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSEqualityComparisonWithCoercion", - "shortDescription": { - "text": "Equality operator may cause type coercion" - }, - "fullDescription": { - "text": "Reports a usage of an equality operator that may cause unexpected type coercions. Suggests replacing '==' and '!=' with type-safe equality operators '===' and '!=='. Depending on the option selected, one of the following cases will be reported: All usages of '==' and '!=' operators. All usages except comparison with null. Some code styles allow using 'x == null' as a replacement for 'x === null || x === undefined'. Only suspicious expressions, such as: '==' or '!=' comparisons with '0', '''', 'null', 'true', 'false', or 'undefined'.", - "markdown": "Reports a usage of an equality operator that may cause unexpected type coercions. Suggests replacing `==` and `!=` with type-safe equality operators `===` and `!==`.\n\nDepending on the option selected, one of the following cases will be reported:\n\n* All usages of `==` and `!=` operators.\n* All usages except comparison with null. Some code styles allow using `x == null` as a replacement for `x === null || x === undefined`.\n* Only suspicious expressions, such as: `==` or `!=` comparisons with `0`, `''`, `null`, `true`, `false`, or `undefined`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EqualityComparisonWithCoercionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSNonStrictModeUsed", - "shortDescription": { - "text": "Non-strict mode used" - }, - "fullDescription": { - "text": "Reports a JavaScript file that is not in the 'strict' mode.", - "markdown": "Reports a JavaScript file that is not in the `strict` mode." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSNonStrictModeUsed", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptExplicitMemberType", - "shortDescription": { - "text": "Explicit types" - }, - "fullDescription": { - "text": "Reports a type annotation that doesn't match the current code style for explicit types. Type declarations are not necessary when the type that is inferred from the context exactly matches the type annotation, for example: 'var pi: number = 3.14' In some cases it is preferable to always have explicit types - this prevents accidental type changes and makes code more explicit.", - "markdown": "Reports a type annotation that doesn't match the current code style for explicit types.\n\n\nType declarations are not necessary when the type that is inferred from the context exactly matches the type annotation, for example:\n\n\n var pi: number = 3.14\n\nIn some cases it is preferable to always have explicit types - this prevents accidental type changes and makes code more explicit." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptExplicitMemberType", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSDuplicateCaseLabel", - "shortDescription": { - "text": "Duplicate 'case' label" - }, - "fullDescription": { - "text": "Reports a duplicated 'case' label on a 'switch' statement, which normally indicates an error.", - "markdown": "Reports a duplicated `case` label on a `switch` statement, which normally indicates an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSDuplicateCaseLabel", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSXDomNesting", - "shortDescription": { - "text": "Invalid DOM element nesting" - }, - "fullDescription": { - "text": "Detects HTML elements in JSX files which are not nested properly according to the DOM specification. React reports runtime warnings on incorrectly nested elements.", - "markdown": "Detects HTML elements in JSX files which are not nested properly according to the DOM specification. React reports runtime warnings on incorrectly nested elements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSXDomNesting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/React", - "index": 158, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryLocalVariableJS", - "shortDescription": { - "text": "Redundant local variable" - }, - "fullDescription": { - "text": "Reports an unnecessary local variable that does not make a function more comprehensible: a local variable that is immediately returned a local variable that is immediately assigned to another variable and is not used anymore a local variable that always has the same value as another local variable or parameter. Use the checkbox below to have this inspection ignore variables that are immediately returned or thrown. Some coding styles suggest using such variables for clarity and ease of debugging.", - "markdown": "Reports an unnecessary local variable that does not make a function more comprehensible:\n\n* a local variable that is immediately returned\n* a local variable that is immediately assigned to another variable and is not used anymore\n* a local variable that always has the same value as another local variable or parameter.\n\n\nUse the checkbox below to have this inspection ignore variables that are immediately\nreturned or thrown. Some coding styles suggest using such variables for clarity and\nease of debugging." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnnecessaryLocalVariableJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Data flow", - "index": 112, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSXUnresolvedComponent", - "shortDescription": { - "text": "Unresolved JSX component" - }, - "fullDescription": { - "text": "Reports an unresolved reference to a JSX component. Suggests adding a missing import statement if the referenced component is defined in the project or its dependencies or creating a new component with this name. The template for a new component can be modified in Editor | File and Code Templates.", - "markdown": "Reports an unresolved reference to a JSX component. Suggests adding a missing import statement if the referenced component is defined in the project or its dependencies or creating a new component with this name.\n\nThe template for a new component can be modified in Editor \\| File and Code Templates." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSXUnresolvedComponent", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnnecessaryLabelOnBreakStatementJS", - "shortDescription": { - "text": "Unnecessary label on 'break' statement" - }, - "fullDescription": { - "text": "Reports a labeled 'break' statement whose labels may be removed without changing the flow of control.", - "markdown": "Reports a labeled `break` statement whose labels may be removed without changing the flow of control." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnnecessaryLabelOnBreakStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DivideByZeroJS", - "shortDescription": { - "text": "Division by zero" - }, - "fullDescription": { - "text": "Reports division by zero or a remainder by zero.", - "markdown": "Reports division by zero or a remainder by zero." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DivideByZeroJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ChainedEqualityJS", - "shortDescription": { - "text": "Chained equality" - }, - "fullDescription": { - "text": "Reports a chained equality comparison (i.e. 'a==b==c'). Such comparisons are confusing.", - "markdown": "Reports a chained equality comparison (i.e. `a==b==c`). Such comparisons are confusing." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ChainedEqualityComparisonsJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSRedundantSwitchStatement", - "shortDescription": { - "text": "'switch' statement is redundant and can be replaced" - }, - "fullDescription": { - "text": "Reports a 'switch' statement with an empty body, or with only one 'case' branch, or with a 'default' branch only.", - "markdown": "Reports a `switch` statement with an empty body, or with only one `case` branch, or with a `default` branch only." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSRedundantSwitchStatement", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "BlockStatementJS", - "shortDescription": { - "text": "Unnecessary block statement" - }, - "fullDescription": { - "text": "Reports a block statement that is not used as the body of 'if', 'for', 'while', 'do', 'with', or 'try' statements, or as the body of a function declaration. Starting from ECMAScript 6, JavaScript blocks introduce new scopes for 'let' and 'const' variables, but still free-standing block statements may be confusing and result in subtle bugs when used with 'var' variables.", - "markdown": "Reports a block statement that is not used as the body of `if`, `for`, `while`, `do`, `with`, or `try` statements, or as the body of a function declaration. Starting from ECMAScript 6, JavaScript blocks introduce new scopes for `let` and `const` variables, but still free-standing block statements may be confusing and result in subtle bugs when used with `var` variables." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "BlockStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TextLabelInSwitchStatementJS", - "shortDescription": { - "text": "Text label in 'switch' statement" - }, - "fullDescription": { - "text": "Reports a labeled statement inside a 'switch' statement, which often results from a typo. Example: 'switch(x)\n {\n case 1:\n case2: //typo!\n case 3:\n break;\n }'", - "markdown": "Reports a labeled statement inside a `switch` statement, which often results from a typo.\n\nExample:\n\n\n switch(x)\n {\n case 1:\n case2: //typo!\n case 3:\n break;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TextLabelInSwitchStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSOctalInteger", - "shortDescription": { - "text": "Octal integer" - }, - "fullDescription": { - "text": "Reports a deprecated octal integer literal prefixed with '0' instead of '0o'. Such literals are not allowed in modern ECMAScript code, and using them in the strict mode is an error. To force this inspection for ES5 and ES3 language levels, select the 'Warn about obsolete octal literals in ES5- code' checkbox below.", - "markdown": "Reports a deprecated octal integer literal prefixed with `0` instead of `0o`. \nSuch literals are not allowed in modern ECMAScript code, and using them in the strict mode is an error. \nTo force this inspection for ES5 and ES3 language levels, select the 'Warn about obsolete octal literals in ES5- code' checkbox below." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JSOctalInteger", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyTryBlockJS", - "shortDescription": { - "text": "Empty 'try' block" - }, - "fullDescription": { - "text": "Reports an empty 'try' block, which usually indicates an error.", - "markdown": "Reports an empty `try` block, which usually indicates an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EmptyTryBlockJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 97, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSIgnoredPromiseFromCall", - "shortDescription": { - "text": "Result of method call returning a promise is ignored" - }, - "fullDescription": { - "text": "Reports a function call that returns a 'Promise' that is not used later. Such calls are usually unintended and indicate an error.", - "markdown": "Reports a function call that returns a `Promise` that is not used later. Such calls are usually unintended and indicate an error." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSIgnoredPromiseFromCall", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Async code and promises", - "index": 103, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "StringLiteralBreaksHTMLJS", - "shortDescription": { - "text": "String literal which breaks HTML parsing" - }, - "fullDescription": { - "text": "Reports a string literal that contains a ' for the complete list." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NodeCoreCodingAssistance", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Node.js", - "index": 172, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSPrimitiveTypeWrapperUsage", - "shortDescription": { - "text": "Primitive type object wrapper used" - }, - "fullDescription": { - "text": "Reports an improper usage of a wrapper for primitive types or a property of a primitive type being modified, as in the latter case the assigned value will be lost.", - "markdown": "Reports an improper usage of a wrapper for primitive types or a property of a primitive type being modified, as in the latter case the assigned value will be lost." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSPrimitiveTypeWrapperUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSLastCommaInArrayLiteral", - "shortDescription": { - "text": "Unneeded last comma in array literal" - }, - "fullDescription": { - "text": "Reports a usage of a trailing comma in an array literal. The warning is reported only when the JavaScript language version is set to ECMAScript 5.1. Although trailing commas in arrays are allowed by the specification, some browsers may throw an error when a trailing comma is used. You can configure formatting options for trailing commas in Code Style | JavaScript or TypeScript | Punctuation.", - "markdown": "Reports a usage of a trailing comma in an array literal.\n\nThe warning is reported only when the JavaScript language version is set to ECMAScript 5.1.\n\nAlthough trailing commas in arrays are allowed by the specification, some browsers may throw an error when a trailing comma is used.\n\nYou can configure formatting options for trailing commas in **Code Style** \\| **JavaScript** or **TypeScript** \\| **Punctuation**." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSLastCommaInArrayLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NegatedConditionalExpressionJS", - "shortDescription": { - "text": "Negated conditional expression" - }, - "fullDescription": { - "text": "Reports a conditional expression whose condition is negated. Suggests flipping the order of branches in the conditional expression to increase the clarity of the statement. Example: '!condition ? 2 : 1'", - "markdown": "Reports a conditional expression whose condition is negated. Suggests flipping the order of branches in the conditional expression to increase the clarity of the statement. Example: `!condition ? 2 : 1`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NegatedConditionalExpressionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LabeledStatementJS", - "shortDescription": { - "text": "Labeled statement" - }, - "fullDescription": { - "text": "Reports a labeled statement.", - "markdown": "Reports a labeled statement." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LabeledStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WithStatementJS", - "shortDescription": { - "text": "'with' statement" - }, - "fullDescription": { - "text": "Reports a 'with' statements. Such statements result in potentially confusing implicit bindings, and may behave strangely in setting new variables.", - "markdown": "Reports a `with` statements. Such statements result in potentially confusing implicit bindings, and may behave strangely in setting new variables." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "WithStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially undesirable code constructs", - "index": 31, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSConstantReassignment", - "shortDescription": { - "text": "Attempt to assign to const or readonly variable" - }, - "fullDescription": { - "text": "Reports reassigning a value to a constant or a readonly variable.", - "markdown": "Reports reassigning a value to a constant or a readonly variable." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JSConstantReassignment", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Validity issues", - "index": 22, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MagicNumberJS", - "shortDescription": { - "text": "Magic number" - }, - "fullDescription": { - "text": "Reports a \"magic number\" that is a numeric literal used without being named by a constant declaration. Magic numbers can result in code whose intention is unclear, and may result in errors if a magic number is changed in one code location but remains unchanged in another. The numbers 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 1000, 0.0 and 1.0 are ignored.", - "markdown": "Reports a \"magic number\" that is a numeric literal used without being named by a constant declaration. Magic numbers can result in code whose intention is unclear, and may result in errors if a magic number is changed in one code location but remains unchanged in another. The numbers 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 1000, 0.0 and 1.0 are ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MagicNumberJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptLibrary", - "shortDescription": { - "text": "Missing global library" - }, - "fullDescription": { - "text": "Reports a TypeScript library file that is required for a symbol but is not listed under the 'lib' compiler option in 'tsconfig.json'.", - "markdown": "Reports a TypeScript library file that is required for a symbol but is not listed under the `lib` compiler option in `tsconfig.json`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "TypeScriptLibrary", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptMissingAugmentationImport", - "shortDescription": { - "text": "Missing augmentation import" - }, - "fullDescription": { - "text": "Reports a usage from augmentation module without an explicit import.", - "markdown": "Reports a usage from [augmentation module](https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation) without an explicit import." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TypeScriptMissingAugmentationImport", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Eslint", - "shortDescription": { - "text": "ESLint" - }, - "fullDescription": { - "text": "Reports a discrepancy detected by the ESLint linter. The highlighting is based on the rule severity specified in the ESLint configuration file for each individual rule. Clear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all ESLint rules.", - "markdown": "Reports a discrepancy detected by the [ESLint](https://eslint.org) linter. \n\nThe highlighting is based on the rule severity specified in the [ESLint configuration file](https://eslint.org/docs/user-guide/configuring) for each individual rule. \n\nClear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all ESLint rules." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "Eslint", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code quality tools", - "index": 69, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSEqualityComparisonWithCoercion.TS", - "shortDescription": { - "text": "Equality operator may cause type coercion" - }, - "fullDescription": { - "text": "Reports a usage of equality operators may cause unexpected type coercions. Suggests replacing '==' or '!=' equality operators with type-safe '===' or '!==' operators. Depending on the option selected, one of the following cases will be reported: All usages of '==' and '!=' operators. All usages except comparison with null. Some code styles allow using 'x == null' as a replacement for 'x === null || x === undefined'. Only suspicious expressions, such as: '==' or '!=' comparisons with '0', '''', 'null', 'true', 'false', or 'undefined'.", - "markdown": "Reports a usage of equality operators may cause unexpected type coercions. Suggests replacing `==` or `!=` equality operators with type-safe `===` or `!==` operators.\n\nDepending on the option selected, one of the following cases will be reported:\n\n* All usages of `==` and `!=` operators.\n* All usages except comparison with null. Some code styles allow using `x == null` as a replacement for `x === null || x === undefined`.\n* Only suspicious expressions, such as: `==` or `!=` comparisons with `0`, `''`, `null`, `true`, `false`, or `undefined`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EqualityComparisonWithCoercionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PackageJsonMismatchedDependency", - "shortDescription": { - "text": "Mismatched dependencies in package.json" - }, - "fullDescription": { - "text": "Reports a dependency from package.json that is not installed or doesn't match the specified version range.", - "markdown": "Reports a dependency from package.json that is not installed or doesn't match the specified [version range](https://docs.npmjs.com/about-semantic-versioning)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PackageJsonMismatchedDependency", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 120, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "InfiniteLoopJS", - "shortDescription": { - "text": "Infinite loop statement" - }, - "fullDescription": { - "text": "Reports a 'for', 'while', or 'do' statement which can only exit by throwing an exception. Such statements often indicate coding errors.", - "markdown": "Reports a `for`, `while`, or `do` statement which can only exit by throwing an exception. Such statements often indicate coding errors." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "InfiniteLoopJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 86, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSArrowFunctionBracesCanBeRemoved", - "shortDescription": { - "text": "Redundant braces around arrow function body" - }, - "fullDescription": { - "text": "Reports an arrow function whose body only consists of braces and exactly one statement. Suggests converting to concise syntax without braces. 'let incrementer = (x) => {return x + 1};' After the quick-fix is applied, the code fragment looks as follows: 'let incrementer = (x) => x + 1;'", - "markdown": "Reports an arrow function whose body only consists of braces and exactly one statement. Suggests converting to concise syntax without braces.\n\n\n let incrementer = (x) => {return x + 1};\n\nAfter the quick-fix is applied, the code fragment looks as follows:\n\n\n let incrementer = (x) => x + 1;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSArrowFunctionBracesCanBeRemoved", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSClassNamingConvention", - "shortDescription": { - "text": "Class naming convention" - }, - "fullDescription": { - "text": "Reports a class or a function that is annotated with a JSDoc '@constructor' or '@class' tag whose names are too short, too long, or do not follow the specified regular expression pattern. Use the fields provided below to specify minimum length, maximum length, and a regular expression expected for classes names. Use the standard 'java.util.regex' format for regular expressions.", - "markdown": "Reports a class or a function that is annotated with a JSDoc `@constructor` or `@class` tag whose names are too short, too long, or do not follow the specified regular expression pattern.\n\n\nUse the fields provided below to specify minimum length, maximum length, and a regular expression\nexpected for classes names. Use the standard `java.util.regex` format for regular expressions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSClassNamingConvention", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Naming conventions", - "index": 104, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUndefinedPropertyAssignment", - "shortDescription": { - "text": "Undefined property assignment" - }, - "fullDescription": { - "text": "Reports an assignment to a property that is not defined in the type of a variable. Example: '/**\n * @type {{ property1: string, property2: number }}\n */\nlet myVariable = create();\n\nmyVariable.newProperty = 3; // bad'", - "markdown": "Reports an assignment to a property that is not defined in the type of a variable.\n\nExample:\n\n\n /**\n * @type {{ property1: string, property2: number }}\n */\n let myVariable = create();\n\n myVariable.newProperty = 3; // bad\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSUndefinedPropertyAssignment", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 79, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSDeprecatedSymbols", - "shortDescription": { - "text": "Deprecated symbol used" - }, - "fullDescription": { - "text": "Reports a usage of a deprecated function variable.", - "markdown": "Reports a usage of a deprecated function variable." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSDeprecatedSymbols", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LocalVariableNamingConventionJS", - "shortDescription": { - "text": "Local variable naming convention" - }, - "fullDescription": { - "text": "Reports a local variable whose name is too short, too long, or doesn't follow the specified regular expression pattern. Use the fields provided below to specify minimum length, maximum length, and a regular expression expected for local variables names. Use the standard 'java.util.regex' format regular expressions.", - "markdown": "Reports a local variable whose name is too short, too long, or doesn't follow the specified regular expression pattern.\n\n\nUse the fields provided below to specify minimum length, maximum length, and a regular expression\nexpected for local variables names. Use the standard `java.util.regex` format regular expressions." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LocalVariableNamingConventionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Naming conventions", - "index": 104, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnresolvedExtXType", - "shortDescription": { - "text": "Unresolved Ext JS xtype" - }, - "fullDescription": { - "text": "Reports an Ext JS 'xtype' reference that doesn't have a corresponding class.", - "markdown": "Reports an Ext JS `xtype` reference that doesn't have a corresponding class." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnresolvedExtXType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ES6RedundantNestingInTemplateLiteral", - "shortDescription": { - "text": "Redundant nesting in template literal" - }, - "fullDescription": { - "text": "Reports nested instances of a string or a template literal. Suggests inlining the nested instances into the containing template string. Example: 'let a = `Hello, ${`Brave ${\"New\"}`} ${\"World\"}!`' After applying the quick-fix the code looks as follows: 'let a = `Hello, Brave New World!`'", - "markdown": "Reports nested instances of a string or a template literal. Suggests inlining the nested instances into the containing template string.\n\nExample:\n\n\n let a = `Hello, ${`Brave ${\"New\"}`} ${\"World\"}!`\n\nAfter applying the quick-fix the code looks as follows:\n\n\n let a = `Hello, Brave New World!`\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ES6RedundantNestingInTemplateLiteral", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestingDepthJS", - "shortDescription": { - "text": "Overly nested function" - }, - "fullDescription": { - "text": "Reports a function whose body contains statements that are too deeply nested within other statements. Such functions may be confusing and indicate that refactoring may be necessary. Use the field provided below to specify the maximum acceptable nesting depth allowed in a function.", - "markdown": "Reports a function whose body contains statements that are too deeply nested within other statements. Such functions may be confusing and indicate that refactoring may be necessary.\n\n\nUse the field provided below to specify the maximum acceptable nesting depth allowed in a function." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "OverlyNestedFunctionJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Function metrics", - "index": 76, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TypeScriptSuspiciousConstructorParameterAssignment", - "shortDescription": { - "text": "Assigned constructor field parameter" - }, - "fullDescription": { - "text": "Reports a common mistake in TypeScript code, when a class field is declared as a constructor parameter, and then this parameter is assigned. In this case, the corresponding field won't be assigned, only the local parameter value is modified. 'class Foo {\n constructor(private p: number) {\n p = 1; //must be this.p = 1;\n }\n}'", - "markdown": "Reports a common mistake in TypeScript code, when a class field is declared as a constructor parameter, and then this parameter is assigned. \nIn this case, the corresponding field *won't* be assigned, only the local parameter value is modified.\n\n\n class Foo {\n constructor(private p: number) {\n p = 1; //must be this.p = 1;\n }\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TypeScriptSuspiciousConstructorParameterAssignment", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 55, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "NestedSwitchStatementJS", - "shortDescription": { - "text": "Nested 'switch' statement" - }, - "fullDescription": { - "text": "Reports a 'switch' statement that is nested in another 'switch' statement. Nested 'switch' statements may be very confusing, particularly if indenting is inconsistent.", - "markdown": "Reports a `switch` statement that is nested in another `switch` statement. Nested `switch` statements may be very confusing, particularly if indenting is inconsistent." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "NestedSwitchStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSMissingSwitchBranches", - "shortDescription": { - "text": "'switch' statement has missing branches" - }, - "fullDescription": { - "text": "Reports a 'switch' statement on a variable of the type 'enum' or 'union' when the statement doesn't cover some value options from the type.", - "markdown": "Reports a `switch` statement on a variable of the type `enum` or `union` when the statement doesn't cover some value options from the type." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JSMissingSwitchBranches", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 109, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSJQueryEfficiency", - "shortDescription": { - "text": "JQuery selector can be optimized" - }, - "fullDescription": { - "text": "Reports a duplicated jQuery selector that can be cached or a usage of an attribute or a pseudo-selector (optional).", - "markdown": "Reports a duplicated jQuery selector that can be cached or a usage of an attribute or a pseudo-selector (optional)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSJQueryEfficiency", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnreachableCodeJS", - "shortDescription": { - "text": "Unreachable code" - }, - "fullDescription": { - "text": "Reports code that can never be executed, which almost certainly indicates an error", - "markdown": "Reports code that can never be executed, which almost certainly indicates an error" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnreachableCodeJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 65, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EmptyStatementBodyJS", - "shortDescription": { - "text": "Statement with empty body" - }, - "fullDescription": { - "text": "Reports an 'if', 'while', 'for', or 'with' statement with an empty body. Such statements often result from typos, and may cause confusion. Use the checkbox below to specify whether the statements with empty block statements as bodies should be reported.", - "markdown": "Reports an `if`, `while`, `for`, or `with` statement with an empty body. Such statements often result from typos, and may cause confusion.\n\n\nUse the checkbox below to specify whether the statements with empty block statements as bodies\nshould be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "StatementWithEmptyBodyJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Potentially confusing code constructs", - "index": 61, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JSUnusedLocalSymbols", - "shortDescription": { - "text": "Unused local symbol" - }, - "fullDescription": { - "text": "Reports an unused locally accessible parameter, local variable, function, class, or private member declaration.", - "markdown": "Reports an unused locally accessible parameter, local variable, function, class, or private member declaration." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JSUnusedLocalSymbols", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Unused symbols", - "index": 117, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.jetbrains.restClient", - "version": "243.24609", - "rules": [ - { - "id": "HttpClientRunRequestNameInspection", - "shortDescription": { - "text": "Possible request name" - }, - "fullDescription": { - "text": "Highlights request name in run block which has no specified import file. Suggests adding import for the file which contains this named request.", - "markdown": "Highlights request name in run block which has no specified import file. Suggests adding import for the file which contains this named request." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpClientRunRequestNameInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpClientUnresolvedAuthId", - "shortDescription": { - "text": "Unresolved Auth identifier" - }, - "fullDescription": { - "text": "Highlights references to non-existent Auth configurations. Suggests creating a new one in the current environment.", - "markdown": "Highlights references to non-existent Auth configurations. Suggests creating a new one in the current environment." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "HttpClientUnresolvedAuthId", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestRequestSeparatorJsonBodyInspection", - "shortDescription": { - "text": "Missing request separator in JSON body" - }, - "fullDescription": { - "text": "Reports possible requests in injected JSON body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", - "markdown": "Reports possible requests in injected JSON body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpRequestRequestSeparatorJsonBodyInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestContentLengthIsIgnored", - "shortDescription": { - "text": "Redundant 'Content-Length'" - }, - "fullDescription": { - "text": "Reports an explicitly set 'Content-Length' header. The header is redundant because HTTP Client uses the actual request body length.", - "markdown": "Reports an explicitly set `Content-Length` header. The header is redundant because HTTP Client uses the actual request body length." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HttpRequestContentLengthIsIgnored", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestRequestSeparatorXmlBodyInspection", - "shortDescription": { - "text": "Missing request separator in HTML/XML body" - }, - "fullDescription": { - "text": "Reports possible requests in injected XML/HTML body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", - "markdown": "Reports possible requests in injected XML/HTML body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpRequestRequestSeparatorXmlBodyInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestJsonBodyInspection", - "shortDescription": { - "text": "Variable should be double-quoted" - }, - "fullDescription": { - "text": "Reports variables which should be double-quoted in json body. The quick fix suggests wrap variable with double quotes '\"{{variable}}\"'.", - "markdown": "Reports variables which should be double-quoted in json body. The quick fix suggests wrap variable with double quotes `\"{{variable}}\"`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HttpRequestJsonBodyInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestCustomHttpMethodInspection", - "shortDescription": { - "text": "Unknown HTTP method" - }, - "fullDescription": { - "text": "Reports possible custom HTTP methods. The quick fix suggests adding the custom HTTP method to project settings.", - "markdown": "Reports possible custom HTTP methods. The quick fix suggests adding the custom HTTP method to project settings." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HttpRequestCustomHttpMethodInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpClientUnresolvedVariable", - "shortDescription": { - "text": "Unresolved environment variable" - }, - "fullDescription": { - "text": "Reports variables undeclared in the current environment HTTP Client. Executing requests with undeclared variables probably fail. Consider adding a variable to the environment or selecting an environment with this variable. Inspection doesn't report variables in request bodies, because it can be a valid syntax of the body. Some variables may be not reported as unresolved, because they are declared in response or pre-request handler scripts via 'client.global.set' or 'request.variables.set' functions call.", - "markdown": "Reports variables undeclared in the current environment HTTP Client.\n\n\nExecuting requests with undeclared variables probably fail.\nConsider adding a variable to the environment or selecting an environment with this variable.\n\nInspection doesn't report variables in request bodies, because it can be a valid syntax of the body.\n\n\nSome variables may be not reported as unresolved, because they are declared in response or pre-request handler scripts via\n`client.global.set` or `request.variables.set` functions call." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HttpClientUnresolvedVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IncorrectHttpHeaderInspection", - "shortDescription": { - "text": "Incorrect HTTP header" - }, - "fullDescription": { - "text": "Reports unknown HTTP headers that do not match any publicly known headers. The quick fix suggests adding the header to the list of custom headers when the Use custom HTTP headers option is enabled. HTTP headers from the list of custom headers will not trigger the inspection.", - "markdown": "Reports unknown HTTP headers that do not match any [publicly\nknown headers](https://www.iana.org/assignments/message-headers/message-headers.xml). The quick fix suggests adding the header to the list of custom headers when the **Use custom HTTP headers** option\nis enabled. HTTP headers from the list of custom headers will not trigger the inspection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IncorrectHttpHeaderInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestEnvironmentAuthConfigurationValidationInspection", - "shortDescription": { - "text": "Auth configuration validation" - }, - "fullDescription": { - "text": "Reports Auth configuration the following problems in HTTP Client environment files: Missing properties in Auth configuration Auth/Security configuration placed in private environment file", - "markdown": "Reports Auth configuration the following problems in HTTP Client environment files:\n\n* Missing properties in Auth configuration\n* Auth/Security configuration placed in private environment file" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HttpRequestEnvironmentAuthConfigurationValidationInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpUrlsUsage", - "shortDescription": { - "text": "Link with unencrypted protocol" - }, - "fullDescription": { - "text": "Reports the links that use unencrypted protocols (such as HTTP), which can expose your data to man-in-the-middle attacks. These attacks are dangerous in general and may be especially harmful for artifact repositories. Use protocols with encryption, such as HTTPS, instead. See HTTPS: Difference from HTTP (wikipedia.org).", - "markdown": "Reports the links that use unencrypted protocols (such as HTTP), which can expose your data to man-in-the-middle attacks. These attacks\nare dangerous in general and may be especially harmful for artifact repositories. Use protocols with encryption, such as HTTPS,\ninstead.\n\nSee [HTTPS: Difference from HTTP (wikipedia.org)](https://en.wikipedia.org/wiki/HTTPS#Difference_from_HTTP)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpUrlsUsage", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "Security", - "index": 131, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestPlaceholder", - "shortDescription": { - "text": "'$placeholder' in HTTP Request" - }, - "fullDescription": { - "text": "Reports a '$placeholder' inside a request. A '$placeholder' to be replaced by the user is created automatically when a tool cannot recognize a part of a request. For example, a request mapping '/aaaa/*/bbb' will be generated as 'GET localhost/aaaa/{{$placeholder}}/bbb'.", - "markdown": "Reports a `$placeholder` inside a request.\n\nA `$placeholder` to be replaced by the user is created automatically when a tool cannot recognize a part of a request. For example, a request mapping `/aaaa/*/bbb` will be generated as `GET localhost/aaaa/{{$placeholder}}/bbb`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HttpRequestPlaceholder", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestWhitespaceInsideRequestTargetPath", - "shortDescription": { - "text": "Whitespace in URL in request" - }, - "fullDescription": { - "text": "Highlights spaces inside URL path segments. HTTP Client will ignore them. For better composing use Split Lines action.", - "markdown": "Highlights spaces inside URL path segments. HTTP Client will ignore them. For better composing use Split Lines action." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpRequestWhitespaceInsideRequestTargetPath", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpClientInappropriateProtocolUsageInspection", - "shortDescription": { - "text": "Inappropriate HTTP Protocol usage" - }, - "fullDescription": { - "text": "Reports inappropriate usage of HTTP protocol keyword, e.g. 'HTTP/2', with non-HTTP method requests. Such a usage will be ignored.", - "markdown": "Reports inappropriate usage of HTTP protocol keyword, e.g. `HTTP/2`, with non-HTTP method requests. Such a usage will be ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpClientInappropriateProtocolUsageInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HttpRequestRequestSeparatorYamlBodyInspection", - "shortDescription": { - "text": "Missing request separator in YAML body" - }, - "fullDescription": { - "text": "Reports possible requests in injected YAML body where request separator '###' is missing. The quick fix suggests adding the separator '###' before the request.", - "markdown": "Reports possible requests in injected YAML body where request separator `###` is missing. The quick fix suggests adding the separator `###` before the request." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HttpRequestRequestSeparatorYamlBodyInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTTP Client", - "index": 19, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.editorconfig.editorconfigjetbrains", - "version": "243.24609", - "rules": [ - { - "id": "EditorConfigNumerousWildcards", - "shortDescription": { - "text": "Too many wildcards" - }, - "fullDescription": { - "text": "Reports sections that contain too many wildcards. Using a lot of wildcards may lead to performance issues.", - "markdown": "Reports sections that contain too many wildcards. Using a lot of wildcards may lead to performance issues." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EditorConfigNumerousWildcards", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigKeyCorrectness", - "shortDescription": { - "text": "Unknown property" - }, - "fullDescription": { - "text": "Reports properties that are not supported by the IDE. Note: some “ij” domain properties may require specific language plugins.", - "markdown": "Reports properties that are not supported by the IDE. Note: some \"ij\" domain properties may require specific language plugins." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigKeyCorrectness", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigEncoding", - "shortDescription": { - "text": "File encoding doesn't match EditorConfig charset" - }, - "fullDescription": { - "text": "Checks that current file encoding matches the encoding defined in \"charset\" property of .editorconfig file.", - "markdown": "Checks that current file encoding matches the encoding defined in \"charset\" property of .editorconfig file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigEncoding", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigEmptyHeader", - "shortDescription": { - "text": "Empty header" - }, - "fullDescription": { - "text": "Reports sections with an empty header. Section header must contain file path globs in the format similar to one supported by 'gitignore'.", - "markdown": "Reports sections with an empty header. Section header must contain file path globs in the format similar to one supported by `gitignore`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigEmptyHeader", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigSpaceInHeader", - "shortDescription": { - "text": "Space in file pattern" - }, - "fullDescription": { - "text": "Reports space characters in wildcard patterns that affect pattern matching. If these characters are not intentional, they should be removed.", - "markdown": "Reports space characters in wildcard patterns that affect pattern matching. If these characters are not intentional, they should be removed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EditorConfigSpaceInHeader", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigOptionRedundancy", - "shortDescription": { - "text": "Redundant property" - }, - "fullDescription": { - "text": "Reports properties that are redundant when another applicable section already contains the same property and value. For example: '[*]\nindent_size=4\n[*.java]\nindent_size=4' are both applicable to '*.java' files and define the same 'indent_size' value.", - "markdown": "Reports properties that are redundant when another applicable section already contains the same property and value.\n\n\nFor example:\n\n\n [*]\n indent_size=4\n [*.java]\n indent_size=4\n\nare both applicable to `*.java` files and define the same `indent_size` value." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigOptionRedundancy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigWildcardRedundancy", - "shortDescription": { - "text": "Redundant wildcard" - }, - "fullDescription": { - "text": "Reports wildcards that become redundant when the “**” wildcard is used in the same section. The “**” wildcard defines a broader set of files than any other wildcard. That is why, any other wildcard used in the same section has no affect and can be removed.", - "markdown": "Reports wildcards that become redundant when the \"\\*\\*\" wildcard is used in the same section.\n\n\nThe \"\\*\\*\" wildcard defines a broader set of files than any other wildcard.\nThat is why, any other wildcard used in the same section has no affect and can be removed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigWildcardRedundancy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigUnusedDeclaration", - "shortDescription": { - "text": "Unused declaration" - }, - "fullDescription": { - "text": "Reports unused declarations. Such declarations can be removed.", - "markdown": "Reports unused declarations. Such declarations can be removed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigUnusedDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigRootDeclarationUniqueness", - "shortDescription": { - "text": "Extra top-level declaration" - }, - "fullDescription": { - "text": "Reports multiple top-level declarations. There can be only one optional “root=true” top-level declaration in the EditorConfig file. Using multiple top-level declarations is not allowed.", - "markdown": "Reports multiple top-level declarations. There can be only one optional \"root=true\" top-level declaration in the EditorConfig file. Using multiple top-level declarations is not allowed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigRootDeclarationUniqueness", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigShadowedOption", - "shortDescription": { - "text": "Overridden property" - }, - "fullDescription": { - "text": "Reports properties that are already defined in other sections. For example: '[*.java]\nindent_size=4\n[{*.java,*.js}]\nindent_size=2' The second section includes all '*.java' files too but it also redefines indent_size. As a result the value 2 will be used for files matching '*.java'.", - "markdown": "Reports properties that are already defined in other sections.\n\nFor example:\n\n\n [*.java]\n indent_size=4\n [{*.java,*.js}]\n indent_size=2\n\nThe second section includes all `*.java` files too but it also redefines indent_size. As a result the value 2 will be used for files matching `*.java`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigShadowedOption", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigValueUniqueness", - "shortDescription": { - "text": "Non-unique list value" - }, - "fullDescription": { - "text": "Reports duplicates in lists of values.", - "markdown": "Reports duplicates in lists of values." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigValueUniqueness", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigUnexpectedComma", - "shortDescription": { - "text": "Unexpected comma" - }, - "fullDescription": { - "text": "Reports commas that cannot be used in the current context. Commas are allowed only as separators for values in lists.", - "markdown": "Reports commas that cannot be used in the current context. Commas are allowed only as separators for values in lists." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigUnexpectedComma", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigShadowingOption", - "shortDescription": { - "text": "Overriding property" - }, - "fullDescription": { - "text": "Reports properties that override the same properties defined earlier in the file. For example: '[*.java]\nindent_size=4\n[{*.java,*.js}]\nindent_size=2' The second section includes the same files as '[*.java]' but also sets indent_size to value 2. Thus the first declaration 'indent_size=4'will be ignored.", - "markdown": "Reports properties that override the same properties defined earlier in the file.\n\nFor example:\n\n\n [*.java]\n indent_size=4\n [{*.java,*.js}]\n indent_size=2\n\nThe second section includes the same files as `[*.java]` but also sets indent_size to value 2. Thus the first declaration `indent_size=4`will be ignored." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigShadowingOption", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigReferenceCorrectness", - "shortDescription": { - "text": "Invalid reference" - }, - "fullDescription": { - "text": "Reports identifiers that are either unknown or have a wrong type.", - "markdown": "Reports identifiers that are either unknown or have a wrong type." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigReferenceCorrectness", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigCharClassLetterRedundancy", - "shortDescription": { - "text": "Duplicate character class letter" - }, - "fullDescription": { - "text": "Reports wildcard patterns in the EditorConfig section that contain a duplicate character in the character class, for example '[aa]'.", - "markdown": "Reports wildcard patterns in the EditorConfig section that contain a duplicate character in the character class, for example `[aa]`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigCharClassLetterRedundancy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigMissingRequiredDeclaration", - "shortDescription": { - "text": "Required declarations are missing" - }, - "fullDescription": { - "text": "Reports properties that miss the required declarations. Refer to the documentation for more information.", - "markdown": "Reports properties that miss the required declarations. Refer to the documentation for more information." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigMissingRequiredDeclaration", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigPartialOverride", - "shortDescription": { - "text": "Overlapping sections" - }, - "fullDescription": { - "text": "Reports subsets of files specified in the current section that overlap with other subsets in other sections. For example: '[{foo,bar}]' and '[{foo,bas}]' both contain “foo”.", - "markdown": "Reports subsets of files specified in the current section that overlap with other subsets in other sections. For example: `[{foo,bar}]` and `[{foo,bas}]` both contain \"foo\"." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "EditorConfigPartialOverride", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigListAcceptability", - "shortDescription": { - "text": "Unexpected value list" - }, - "fullDescription": { - "text": "Reports lists of values that are used in properties in which lists are not supported. In this case, only a single value can be specified.", - "markdown": "Reports lists of values that are used in properties in which lists are not supported. In this case, only a single value can be specified." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigListAcceptability", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigPatternEnumerationRedundancy", - "shortDescription": { - "text": "Unnecessary braces" - }, - "fullDescription": { - "text": "Reports pattern lists that are either empty '{}' or contain just one pattern, for example '{foo}' in contrast to a list containing multiple patterns, for example '{foo,bar}'. In this case braces are handled as a part of the name. For example, the pattern '*.{a}' will match the file 'my.{a}' but not 'my.a'.", - "markdown": "Reports pattern lists that are either empty `{}` or contain just one pattern, for example `{foo}` in contrast to a list containing multiple patterns, for example `{foo,bar}`. In this case braces are handled as a part of the name. For example, the pattern `*.{a}` will match the file `my.{a}` but not `my.a`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigPatternEnumerationRedundancy", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigPairAcceptability", - "shortDescription": { - "text": "Unexpected key-value pair" - }, - "fullDescription": { - "text": "Reports key-value pairs that are not allowed in the current context.", - "markdown": "Reports key-value pairs that are not allowed in the current context." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigPairAcceptability", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigNoMatchingFiles", - "shortDescription": { - "text": "No matching files" - }, - "fullDescription": { - "text": "Reports sections with wildcard patterns that do not match any files under the directory in which the '.editorconfig' file is located.", - "markdown": "Reports sections with wildcard patterns that do not match any files under the directory in which the `.editorconfig` file is located." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigNoMatchingFiles", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigHeaderUniqueness", - "shortDescription": { - "text": "EditorConfig section is not unique" - }, - "fullDescription": { - "text": "Reports sections that define the same file pattern as other sections.", - "markdown": "Reports sections that define the same file pattern as other sections." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigHeaderUniqueness", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigValueCorrectness", - "shortDescription": { - "text": "Invalid property value" - }, - "fullDescription": { - "text": "Reports property values that do not meet value restrictions. For example, some properties may be only “true” or “false”, others contain only integer numbers etc. If a value has a limited set of variants, use code completion to see all of them.", - "markdown": "Reports property values that do not meet value restrictions. For example, some properties may be only \"true\" or \"false\", others contain only integer numbers etc. If a value has a limited set of variants, use code completion to see all of them." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigValueCorrectness", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigRootDeclarationCorrectness", - "shortDescription": { - "text": "Unexpected top-level declaration" - }, - "fullDescription": { - "text": "Reports unexpected top-level declarations. Top-level declarations other than “root=true” are not allowed in the EditorConfig file.", - "markdown": "Reports unexpected top-level declarations. Top-level declarations other than \"root=true\" are not allowed in the EditorConfig file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigRootDeclarationCorrectness", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigPatternRedundancy", - "shortDescription": { - "text": "Duplicate or redundant pattern" - }, - "fullDescription": { - "text": "Reports file patterns that are redundant as there already are other patterns that define the same scope of files or even a broader one. For example, in '[{*.java,*}]' the first '*.java' pattern defines a narrower scope compared to '*'. That is why it is redundant and can be removed.", - "markdown": "Reports file patterns that are redundant as there already are other patterns that define the same scope of files or even a broader one. For example, in `[{*.java,*}]` the first `*.java` pattern defines a narrower scope compared to `*`. That is why it is redundant and can be removed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigPatternRedundancy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigDeprecatedDescriptor", - "shortDescription": { - "text": "Deprecated property" - }, - "fullDescription": { - "text": "Reports EditorConfig properties that are no longer supported.", - "markdown": "Reports EditorConfig properties that are no longer supported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigDeprecatedDescriptor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigCharClassRedundancy", - "shortDescription": { - "text": "Unnecessary character class" - }, - "fullDescription": { - "text": "Reports character classes that consist of a single character. Such classes can be simplified to a character, for example '[a]'→'a'.", - "markdown": "Reports character classes that consist of a single character. Such classes can be simplified to a character, for example `[a]`→`a`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigCharClassRedundancy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigEmptySection", - "shortDescription": { - "text": "Empty section" - }, - "fullDescription": { - "text": "Reports sections that do not contain any EditorConfig properties.", - "markdown": "Reports sections that do not contain any EditorConfig properties." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "EditorConfigEmptySection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "EditorConfigVerifyByCore", - "shortDescription": { - "text": "Invalid .editorconfig file" - }, - "fullDescription": { - "text": "Verifies the whole file using the backing EditorConfig core library and reports any failures. Any such failure would prevent EditorConfig properties from being correctly applied.", - "markdown": "Verifies the whole file using the backing EditorConfig core library and reports any failures. Any such failure would prevent EditorConfig properties from being correctly applied." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "EditorConfigVerifyByCore", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "EditorConfig", - "index": 20, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.database", - "version": "243.24609", - "rules": [ - { - "id": "SqlMissingReturnInspection", - "shortDescription": { - "text": "Missing return statement" - }, - "fullDescription": { - "text": "Reports functions that have no RETURN statements. Example (Oracle): 'CREATE FUNCTION foo RETURN int AS\nBEGIN\nEND;' The 'foo' function must return the integer value but the function body returns nothing. To fix the error, add a RETURN statement (for example, 'return 1;'). 'CREATE FUNCTION foo RETURN int AS\nBEGIN\n RETURN 1;\nEND;'", - "markdown": "Reports functions that have no RETURN statements.\n\nExample (Oracle):\n\n CREATE FUNCTION foo RETURN int AS\n BEGIN\n END;\n\nThe `foo` function must return the integer value but the function body returns nothing. To fix the error,\nadd a RETURN statement (for example, `return 1;`).\n\n CREATE FUNCTION foo RETURN int AS\n BEGIN\n RETURN 1;\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "SqlMissingReturn", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlCaseVsIfInspection", - "shortDescription": { - "text": "Using CASE instead of conditional function and vice versa" - }, - "fullDescription": { - "text": "Reports situations when CASE and IF are interchangeable. Example (MySQL): 'SELECT CASE\nWHEN C1 IS NULL THEN 1\nELSE 0\nEND\nFROM dual;' To keep your code short, you can replace the CASE structure with IF. You can do that by applying the Replace with 'IF' call intention action. The example code will look as follows: 'SELECT IF(C1 IS NULL, 1, 0)\nFROM dual;' To revert IF to CASE, click IF and apply the Replace with CASE expression intention action.", - "markdown": "Reports situations when CASE and IF are interchangeable.\n\nExample (MySQL):\n\n SELECT CASE\n WHEN C1 IS NULL THEN 1\n ELSE 0\n END\n FROM dual;\n\nTo keep your code short, you can replace the CASE structure with IF. You can do that by applying the **Replace with 'IF' call**\nintention action. The example code will look as follows:\n\n SELECT IF(C1 IS NULL, 1, 0)\n FROM dual;\n\nTo revert IF to CASE, click IF and apply the **Replace with CASE expression** intention action." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlCaseVsIf", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlShouldBeInGroupByInspection", - "shortDescription": { - "text": "Column should be in group by clause" - }, - "fullDescription": { - "text": "Reports columns that are not in the GROUP BY clause or inside an aggregate function call. Example (Microsoft SQL Server): 'CREATE TABLE t1 (a INT, b INT);\nSELECT a, b FROM t1 GROUP BY a;' If you run the SELECT query, you will receive an error because Microsoft SQL Server expects the 'b' column in GROUP BY or used inside an aggregate function. The following two examples will fix the error. 'SELECT a, b FROM t1 GROUP BY a, b;\nSELECT a, max(b) max_b FROM t1 GROUP BY a;'", - "markdown": "Reports columns that are not in the GROUP BY clause or inside an aggregate function call.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE t1 (a INT, b INT);\n SELECT a, b FROM t1 GROUP BY a;\n\nIf you run the SELECT query, you will receive an error because Microsoft SQL Server expects the `b` column in GROUP BY or used\ninside an aggregate function. The following two examples will fix the error.\n\n SELECT a, b FROM t1 GROUP BY a, b;\n SELECT a, max(b) max_b FROM t1 GROUP BY a;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlShouldBeInGroupBy", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlMisleadingReferenceInspection", - "shortDescription": { - "text": "Misleading references" - }, - "fullDescription": { - "text": "Reports ambiguous references in SQL code. For example, when a name refer to both a table column and a routine parameter. The execution of such code might lead to errors or unexpected results due to counter-intuitive resolution logic. Usually, names with a more local scope have higher priority. Example (PostgreSQL): 'CREATE TABLE foo\n(\n id INT,\n name VARCHAR(5)\n);\nCREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS\n$$\nDECLARE\n b INT;\nBEGIN\n -- `name` is ambiguous as it is used as a column name and a parameter\n SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name;\n RETURN b;\nEND;\n$$ LANGUAGE plpgsql;' In PostgreSQL, you can use the '#variable_conflict' directives to explicitly specify a correct reference. For example, use '#variable_conflict use_column' to refer to a column name, or '#variable_conflict use_variable' to refer to a parameter. 'CREATE TABLE foo\n(\n id INT,\n name VARCHAR(5)\n);\nCREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS\n$$\n #variable_conflict use_column\nDECLARE\n b INT;\nBEGIN\n SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name;\n RETURN b;\nEND;\n$$ LANGUAGE plpgsql;'", - "markdown": "Reports ambiguous references in SQL code.\n\nFor example, when a name refer to both a table column and a routine parameter. The execution of such code might lead to errors or unexpected\nresults due to counter-intuitive resolution logic. Usually, names with a more local scope have higher priority.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo\n (\n id INT,\n name VARCHAR(5)\n );\n CREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS\n $$\n DECLARE\n b INT;\n BEGIN\n -- `name` is ambiguous as it is used as a column name and a parameter\n SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name;\n RETURN b;\n END;\n $$ LANGUAGE plpgsql;\n\nIn PostgreSQL, you can use the `#variable_conflict` directives to explicitly specify a correct reference. For example,\nuse `#variable_conflict use_column` to refer to a column name, or `#variable_conflict use_variable` to refer to a\nparameter.\n\n CREATE TABLE foo\n (\n id INT,\n name VARCHAR(5)\n );\n CREATE FUNCTION func(name VARCHAR(5)) RETURNS INT AS\n $$\n #variable_conflict use_column\n DECLARE\n b INT;\n BEGIN\n SELECT COUNT(*) INTO b FROM foo t WHERE t.name = name;\n RETURN b;\n END;\n $$ LANGUAGE plpgsql;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlMisleadingReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlRedundantAliasInspection", - "shortDescription": { - "text": "Redundant alias expressions" - }, - "fullDescription": { - "text": "Reports alias expressions that duplicate names of columns in tables and might be redundant. Example (PostgreSQL): 'CREATE TABLE foo(a INT, b INT);\n\nSELECT * FROM foo foo(a, b);\nSELECT * FROM foo foo(a);\nSELECT * FROM foo foo(x);\nSELECT * FROM foo foo(x, y);' The first two aliases use the same column names as in the 'foo' table. They are considered redundant because they column names are identical.", - "markdown": "Reports alias expressions that duplicate names of columns in tables and might be redundant.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo(a INT, b INT);\n\n SELECT * FROM foo foo(a, b);\n SELECT * FROM foo foo(a);\n SELECT * FROM foo foo(x);\n SELECT * FROM foo foo(x, y);\n\nThe first two aliases use the same column names as in the `foo` table. They are considered redundant because they\ncolumn names are identical." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlRedundantAlias", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlUnusedCteInspection", - "shortDescription": { - "text": "Unused common table expression" - }, - "fullDescription": { - "text": "Reports unused common table expressions (CTE) inside the query. Example (PostgreSQL): 'CREATE TABLE foo(a INT);\n\nWITH a AS (SELECT 1 AS x FROM foo)\nSELECT 1 + 2 FROM foo;' By using WITH, we create a temporary named result set with the name 'a', also known as a common table expression (CTE). But we do not use this CTE later in the code. The unused CTE is greyed out.", - "markdown": "Reports unused common table expressions (CTE) inside the query.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo(a INT);\n\n WITH a AS (SELECT 1 AS x FROM foo)\n SELECT 1 + 2 FROM foo;\n\nBy using WITH, we create a temporary named result set with the name `a`, also known as a common table expression (CTE). But\nwe do not use this CTE later in the code. The unused CTE is greyed out." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlUnusedCte", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MongoJSResolveInspection", - "shortDescription": { - "text": "Resolution problems" - }, - "fullDescription": { - "text": "Reports unresolved references in MongoDB and JavaScript code. Example: 'db\nuse foo\n -- a reference to a non-existing collection\ndb.non_existing_collection\ndb['non_existing_collection']\ndb['non_existing_collection'].find().hasNext()' The 'non_existing_collection' collection does not exist in the database and will be reported.", - "markdown": "Reports unresolved references in MongoDB and JavaScript code.\n\nExample:\n\n db\n use foo\n -- a reference to a non-existing collection\n db.non_existing_collection\n db['non_existing_collection']\n db['non_existing_collection'].find().hasNext()\n\nThe `non_existing_collection` collection does not exist in the database and will be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MongoJSResolve", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "MongoJS", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlDialectInspection", - "shortDescription": { - "text": "SQL dialect detection" - }, - "fullDescription": { - "text": "Reports situations when a dialect is not assigned to an SQL file. For example, when you open a new SQL file without assigning a dialect to it, you see a notification where the best matching dialect is advised. Click the Use link to use the advised dialect. Alternatively, click the Change dialect to link to select the other dialect.", - "markdown": "Reports situations when a dialect is not assigned to an SQL file.\n\nFor example, when you open a new SQL file without assigning a dialect\nto it, you see a notification where the best matching dialect is advised. Click the **Use \\** link to use the advised\ndialect. Alternatively, click the **Change dialect to** link to select the other dialect." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlDialectInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MongoJSExtDeprecationInspection", - "shortDescription": { - "text": "Deprecated element" - }, - "fullDescription": { - "text": "Reports usages of deprecated methods in MongoDB and JavaScript code. The quick-fix replaces deprecated methods with recommended alternatives. Example: 'db.my_collection.insert()' After the quick-fix is applied: 'db.my_collection.insertOne()'", - "markdown": "Reports usages of deprecated methods in MongoDB and JavaScript code.\n\nThe quick-fix replaces deprecated methods with recommended alternatives.\n\nExample:\n\n\n db.my_collection.insert()\n\nAfter the quick-fix is applied:\n\n\n db.my_collection.insertOne()\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MongoJSDeprecation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "MongoJS", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MongoJSDeprecationInspection", - "shortDescription": { - "text": "Deprecated element" - }, - "fullDescription": { - "text": "Reports usages of deprecated methods in MongoDB and JavaScript code. The quick-fix replaces deprecated methods with recommended alternatives. Example: 'db.my_collection.insert()' After the quick-fix is applied: 'db.my_collection.insertOne()'", - "markdown": "Reports usages of deprecated methods in MongoDB and JavaScript code.\n\nThe quick-fix replaces deprecated methods with recommended alternatives.\n\nExample:\n\n db.my_collection.insert()\n\nAfter the quick-fix is applied:\n\n db.my_collection.insertOne()\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MongoJSDeprecation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "MongoJS", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MsBuiltinInspection", - "shortDescription": { - "text": "Builtin functions" - }, - "fullDescription": { - "text": "Reports truncations of string arguments in ISNULL functions. The ISNULL syntax is 'ISNULL(check_expression, replacement_value)'. According to ISNULL at docs.microsoft.com, 'replacement_value' will be truncated if 'replacement_value' is longer than 'check_expression'. Example (Microsoft SQL Server): 'DECLARE @name1 VARCHAR(2) = NULL;\nDECLARE @name2 VARCHAR(10) = 'Example';\nDECLARE @name3 VARCHAR(2) = 'Hi';\n\n -- `@name2` is VARCHAR(10) and will be truncated\nSELECT ISNULL(@name1, @name2);\n\n -- `@name3` is VARCHAR(2) as `@name1` and will not be truncated\nSELECT ISNULL(@name1, @name3);'", - "markdown": "Reports truncations of string arguments in ISNULL functions.\n\nThe ISNULL syntax is `ISNULL(check_expression, replacement_value)`.\n\nAccording to [ISNULL at\ndocs.microsoft.com](https://docs.microsoft.com/en-us/sql/t-sql/functions/isnull-transact-sql), `replacement_value` will be truncated if `replacement_value` is longer than\n`check_expression`.\n\nExample (Microsoft SQL Server):\n\n DECLARE @name1 VARCHAR(2) = NULL;\n DECLARE @name2 VARCHAR(10) = 'Example';\n DECLARE @name3 VARCHAR(2) = 'Hi';\n\n -- `@name2` is VARCHAR(10) and will be truncated\n SELECT ISNULL(@name1, @name2);\n\n -- `@name3` is VARCHAR(2) as `@name1` and will not be truncated\n SELECT ISNULL(@name1, @name3);\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MssqlBuiltin", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL server", - "index": 102, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlMultipleLimitClausesInspection", - "shortDescription": { - "text": "Multiple row limiting/offset clauses in queries" - }, - "fullDescription": { - "text": "Reports usages of multiple row limiting clauses in a single query. Example (Microsoft SQL Server): 'create table foo(a int);\nselect top 1 * from foo order by a offset 10 rows fetch next 20 rows only;' The SELECT TOP clause is used to specify that only 1 record must be returned. The FETCH clause specifies the number of rows to return after the OFFSET clause has been processed. But as we already have the SELECT TOP limiting clause, the FETCH clause might be redundant.", - "markdown": "Reports usages of multiple row limiting clauses in a single query.\n\nExample (Microsoft SQL Server):\n\n create table foo(a int);\n select top 1 * from foo order by a offset 10 rows fetch next 20 rows only;\n\nThe SELECT TOP clause is used to specify that only 1 record must be\nreturned. The FETCH clause specifies the number of rows to return after the OFFSET\nclause has been processed. But as we already have the SELECT TOP limiting clause, the FETCH clause might be redundant." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlMultipleLimitClauses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlAmbiguousColumnInspection", - "shortDescription": { - "text": "Ambiguous reference" - }, - "fullDescription": { - "text": "Reports columns that have identical names but belong to different tables. Example (MySQL): 'CREATE TABLE foo(id INT PRIMARY KEY);\nCREATE TABLE bar(id INT PRIMARY KEY);\n\nSELECT foo.id, bar.id FROM foo, bar WHERE id > 0;' The 'id' column appears in 'foo' and 'bar' tables. You need to qualify the column name to make the query correct. 'SELECT foo.id, bar.id FROM foo, bar WHERE foo.id > 0;'", - "markdown": "Reports columns that have identical names but belong to different tables.\n\nExample (MySQL):\n\n CREATE TABLE foo(id INT PRIMARY KEY);\n CREATE TABLE bar(id INT PRIMARY KEY);\n\n SELECT foo.id, bar.id FROM foo, bar WHERE id > 0;\n\nThe `id` column appears in `foo` and `bar` tables. You need to qualify the column name to\nmake the query correct.\n\n SELECT foo.id, bar.id FROM foo, bar WHERE foo.id > 0;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlAmbiguousColumn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlInsertValuesInspection", - "shortDescription": { - "text": "VALUES clause cardinality" - }, - "fullDescription": { - "text": "Reports situations when a number of parameters in VALUES does not match a number of columns in a target table. Example (MySQL): 'CREATE TABLE foo(a INT, b INT, c INT);\n\nINSERT INTO foo VALUES (1,2,3,4)' The 'foo' table has three columns but in the INSERT INTO statement we pass four.", - "markdown": "Reports situations when a number of parameters in VALUES does not match a number of columns in a target table.\n\nExample (MySQL):\n\n CREATE TABLE foo(a INT, b INT, c INT);\n\n INSERT INTO foo VALUES (1,2,3,4)\n\nThe `foo` table has three columns but in the INSERT INTO statement we pass four." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlInsertValues", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlRedundantElseNullInspection", - "shortDescription": { - "text": "Redundant ELSE NULL clause" - }, - "fullDescription": { - "text": "Reports redundant ELSE NULL clauses. Example (MySQL): 'SELECT CASE WHEN 2 > 1 THEN 'OK' ELSE NULL END AS alias FROM foo;' The 'ELSE NULL' part will never be executed and may be omitted.", - "markdown": "Reports redundant ELSE NULL clauses.\n\nExample (MySQL):\n\n SELECT CASE WHEN 2 > 1 THEN 'OK' ELSE NULL END AS alias FROM foo;\n\nThe `ELSE NULL` part will never be executed and may be omitted." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlRedundantElseNull", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlCurrentSchemaInspection", - "shortDescription": { - "text": "Current console schema introspected" - }, - "fullDescription": { - "text": "Reports schemas and databases in the current session that are not introspected. For example, this warning might occur when you try to create a table in the schema that is not introspected. Introspection is a method of inspecting a data source. When you perform introspection, structural information in the data source is inspected to detect tables, columns, functions, and other elements with their attributes.", - "markdown": "Reports schemas and databases in the current session that are not introspected.\n\nFor example, this warning might occur when you try to create a table in the schema that is not introspected.\n\nIntrospection is a method of inspecting a data source. When you perform introspection, structural information in the data source is\ninspected to detect tables, columns, functions, and other elements with their attributes." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlCurrentSchemaInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlInsertNullIntoNotNullInspection", - "shortDescription": { - "text": "Insert NULL into NOT NULL column" - }, - "fullDescription": { - "text": "Reports cases when you insert NULL values into columns that accept only NOT NULL values. Example (Microsoft SQL Server): 'CREATE TABLE br2 (\nid INT NOT NULL,\ncol1 NVARCHAR (20) NOT NULL,\ncol2 NVARCHAR (20) NOT NULL,\n);\n--\nINSERT INTO br2 (id, col1, col2)\nVALUES (1, NULL, NULL);' You cannot insert NULL values in 'col1' and 'col2' because they are defined as NOT NULL. If you run the script as is, you will receive an error. To fix this code, replace NULL in the VALUES part with some values (for example, '42' and ''bird''). INSERT INTO br2 (id, col1, col2)\nVALUES (1, 42, 'bird');", - "markdown": "Reports cases when you insert NULL values into columns that accept only NOT NULL values.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE br2 (\n id INT NOT NULL,\n col1 NVARCHAR (20) NOT NULL,\n col2 NVARCHAR (20) NOT NULL,\n );\n --\n INSERT INTO br2 (id, col1, col2)\n VALUES (1, NULL, NULL);\n\nYou cannot insert NULL values in `col1` and `col2` because they are defined as NOT NULL. If you run the script as\nis,\nyou will receive an error. To fix this code, replace NULL in the VALUES part with some values (for example, `42` and\n`'bird'`).\n\n```\nINSERT INTO br2 (id, col1, col2)\nVALUES (1, 42, 'bird');\n```" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlInsertNullIntoNotNull", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlTriggerTransitionInspection", - "shortDescription": { - "text": "Suspicious code in triggers" - }, - "fullDescription": { - "text": "Reports incorrect usages of transition table variables in triggers. Example (HSQLDB): 'CREATE TABLE foo(a INT);\n\nCREATE TRIGGER trg\n AFTER DELETE ON foo\nBEGIN\n SELECT * FROM NEW;\nEND;\n\nCREATE TRIGGER trig AFTER INSERT ON foo\n REFERENCING OLD ROW AS newrow\n FOR EACH ROW WHEN (a > 1)\n INSERT INTO foo VALUES (1)' In HSQLDB, DELETE triggers may be used only with the OLD state while INSERT triggers may have only the NEW state. So, in the previous example, NEW in 'SELECT * FROM NEW;' will be highlighted as well as OLD in 'REFERENCING OLD ROW AS newrow'.", - "markdown": "Reports incorrect usages of transition table variables in triggers.\n\nExample (HSQLDB):\n\n CREATE TABLE foo(a INT);\n\n CREATE TRIGGER trg\n AFTER DELETE ON foo\n BEGIN\n SELECT * FROM NEW;\n END;\n\n CREATE TRIGGER trig AFTER INSERT ON foo\n REFERENCING OLD ROW AS newrow\n FOR EACH ROW WHEN (a > 1)\n INSERT INTO foo VALUES (1)\n\nIn HSQLDB, DELETE triggers may be used only with the OLD state while INSERT triggers may have only the NEW state. So, in the previous\nexample, NEW in `SELECT * FROM NEW;` will be highlighted as well as OLD in `REFERENCING OLD ROW AS newrow`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlTriggerTransition", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlNamedArgumentsInspection", - "shortDescription": { - "text": "Named arguments should be used" - }, - "fullDescription": { - "text": "Reports arguments that are used without names in routine calls. By default, this inspection is disabled. For more information about the difference between named and unnamed parameters, see Binding Parameters by Name (Named Parameters) at docs.microsoft.com . Example (Microsoft SQL Server): 'CREATE FUNCTION foo(n INT, m INT) RETURNS INT AS\nBEGIN\n RETURN n + m;\nEND;\n\nCREATE PROCEDURE test AS\nBEGIN\n foo n = 1, m = 2;\n\n--- The following call misses parameter names and will be highlighted\n foo 1, 2;\nEND;' Parameters '1, 2' in the 'foo 1, 2;' call are highlighted because they miss names.", - "markdown": "Reports arguments that are used without names in routine calls. By default, this inspection is disabled.\n\nFor more information about the difference between named and unnamed parameters, see [Binding Parameters by Name (Named Parameters) at docs.microsoft.com](https://docs.microsoft.com/en-us/sql/odbc/reference/develop-app/binding-parameters-by-name-named-parameters).\n\nExample (Microsoft SQL Server):\n\n CREATE FUNCTION foo(n INT, m INT) RETURNS INT AS\n BEGIN\n RETURN n + m;\n END;\n\n CREATE PROCEDURE test AS\n BEGIN\n foo n = 1, m = 2;\n\n --- The following call misses parameter names and will be highlighted\n foo 1, 2;\n END;\n\nParameters `1, 2` in the `foo 1, 2;` call are highlighted because they miss names." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlNamedArguments", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlTransactionStatementInTriggerInspection", - "shortDescription": { - "text": "Use of transaction management statements in triggers" - }, - "fullDescription": { - "text": "Reports usages of transaction management statements like COMMIT or ROLLBACK in trigger bodies. With COMMIT or ROLLBACK statements in a trigger body, the trigger will not compile. The fail happens because triggers start during transactions. When the trigger starts the current transaction is still not complete. As COMMIT terminates a transaction, both statements (COMMIT and ROLLBACK) would lead to an exception. Changes that are executed in a trigger should be committed (or rolled back) by the owning transaction that started the trigger. Example (Oracle): 'CREATE TABLE employee_audit\n(\n id INT NOT NULL,\n update_date DATE NOT NULL,\n old_name VARCHAR2(100),\n new_name VARCHAR2(100)\n);\n\nCREATE TABLE employees\n(\n id INT NOT NULL,\n name VARCHAR2(100) NOT NULL\n);\n\nCREATE OR REPLACE TRIGGER trig_commit\n AFTER UPDATE OF name\n ON employees\n FOR EACH ROW\nBEGIN\n INSERT INTO employee_audit VALUES (:old.id, SYSDATE, :old.name, :new.name);\n COMMIT;\nEND;\n\nCREATE OR REPLACE TRIGGER trig_rollback\n AFTER UPDATE OF name\n ON employees\n FOR EACH ROW\nBEGIN\n INSERT INTO employee_audit VALUES (:old.id, SYSDATE, :old.name, :new.name);\n ROLLBACK;\nEND;'", - "markdown": "Reports usages of transaction management statements like COMMIT or ROLLBACK in trigger bodies.\n\nWith COMMIT or ROLLBACK statements in a trigger body, the trigger will not compile.\nThe fail happens because triggers start during transactions. When the trigger starts the current transaction is still not complete. As\nCOMMIT\nterminates a transaction, both statements (COMMIT and ROLLBACK) would lead to an exception.\nChanges that are executed in a trigger should be committed (or rolled back) by the owning transaction that started the trigger.\n\nExample (Oracle):\n\n CREATE TABLE employee_audit\n (\n id INT NOT NULL,\n update_date DATE NOT NULL,\n old_name VARCHAR2(100),\n new_name VARCHAR2(100)\n );\n\n CREATE TABLE employees\n (\n id INT NOT NULL,\n name VARCHAR2(100) NOT NULL\n );\n\n CREATE OR REPLACE TRIGGER trig_commit\n AFTER UPDATE OF name\n ON employees\n FOR EACH ROW\n BEGIN\n INSERT INTO employee_audit VALUES (:old.id, SYSDATE, :old.name, :new.name);\n COMMIT;\n END;\n\n CREATE OR REPLACE TRIGGER trig_rollback\n AFTER UPDATE OF name\n ON employees\n FOR EACH ROW\n BEGIN\n INSERT INTO employee_audit VALUES (:old.id, SYSDATE, :old.name, :new.name);\n ROLLBACK;\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlTransactionStatementInTrigger", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OraMissingBodyInspection", - "shortDescription": { - "text": "Missing body for package/object type specification" - }, - "fullDescription": { - "text": "Reports package and object type specifications that are missing body declarations. Package specifications and object types that declare routines as well as package specifications with cursors must have body declarations where those routines and cursors are implemented. Absence of a body leads to a runtime error when routines or cursors are invoked in program code. Example (Oracle): 'CREATE OR REPLACE PACKAGE ppp IS\n FUNCTION foo(a INT) RETURN INT;\nEND;'", - "markdown": "Reports package and object type specifications that are missing body declarations.\n\nPackage specifications and object types that declare routines as well as package specifications with cursors must have body\ndeclarations where those routines and cursors are implemented. Absence of a body leads to a runtime error when routines or cursors are\ninvoked in program code.\n\nExample (Oracle):\n\n CREATE OR REPLACE PACKAGE ppp IS\n FUNCTION foo(a INT) RETURN INT;\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlMissingBody", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Oracle", - "index": 123, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlCheckUsingColumnsInspection", - "shortDescription": { - "text": "Check using clause columns" - }, - "fullDescription": { - "text": "Reports columns in the USING clause that does not exist in both tables. Example (MySQL): 'CREATE TABLE t1 (i INT, j INT);\nCREATE TABLE t2 (k INT, l INT);\nSELECT * FROM t1 JOIN t2 USING (j);' In USING clauses, a column name must be present in both tables, and the SELECT query will automatically join those tables by using the given column name. As we do not have the 'j' column in 't2', we can rewrite the query using ON. The ON clause can join tables where the column names do not match in both tables. 'SELECT * FROM t1 JOIN t2 ON t1.j = t2.l;'", - "markdown": "Reports columns in the USING clause that does not exist in both tables.\n\nExample (MySQL):\n\n CREATE TABLE t1 (i INT, j INT);\n CREATE TABLE t2 (k INT, l INT);\n SELECT * FROM t1 JOIN t2 USING (j);\n\nIn USING clauses, a column name must be present in both tables, and the SELECT query will automatically join\nthose tables by using the given column name. As we do not have the `j` column in `t2`, we can\nrewrite the query using ON. The ON clause can join tables where the column names do not match in both tables.\n\n SELECT * FROM t1 JOIN t2 ON t1.j = t2.l;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlCheckUsingColumns", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlInsertIntoGeneratedColumnInspection", - "shortDescription": { - "text": "Insertion into generated columns" - }, - "fullDescription": { - "text": "Reports INSERT statements that assign values to generated columns. Generated columns can be read, but their values can not be directly written. Example (PostgreSQL): 'CREATE TABLE foo\n(\n col1 INT,\n col2 INT GENERATED ALWAYS AS (col1 + 1) STORED\n);\nINSERT INTO foo(col1, col2) VALUES (1, 2);'\n You cannot insert '2' into the 'col2' column because this column is generated. For this script to work, you can change '2' to DEFAULT. 'INSERT INTO foo(col1, col2) VALUES (1, DEFAULT);'", - "markdown": "Reports INSERT statements that assign values to generated columns. Generated columns can be read, but their values can not be directly written.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo\n (\n col1 INT,\n col2 INT GENERATED ALWAYS AS (col1 + 1) STORED\n );\n INSERT INTO foo(col1, col2) VALUES (1, 2);\n\nYou cannot insert `2` into the `col2` column because this column is generated.\nFor this script to work, you can change `2` to DEFAULT.\n`INSERT INTO foo(col1, col2) VALUES (1, DEFAULT);`" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlInsertIntoGeneratedColumn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MsOrderByInspection", - "shortDescription": { - "text": "ORDER BY in queries" - }, - "fullDescription": { - "text": "Reports usages when the 'ORDER BY' clause is used without 'TOP', 'OFFSET', or 'FOR XML' in views, inline functions, derived tables, subqueries, and common table expressions. For more information about usages of 'ORDER BY', see SELECT - ORDER BY Clause (Transact-SQL) at docs.microsoft.com. Example (Microsoft SQL server): 'CREATE TABLE foo (a INT NOT NULL, b INT NOT NULL);\n\nSELECT *\nFROM (SELECT a, b\nFROM foo A\nWHERE a < 89\nORDER BY b) ALIAS;' In a subquery, ORDER BY will be highlighted as an error. You can add TOP, OFFSET, or FOR XML to a subquery. Alternatively, use the Delete element quick-fix to delete the ORDER BY section. After the quick-fix is applied: 'SELECT *\nFROM (SELECT a, b\nFROM foo A\nWHERE a < 89) ALIAS;'", - "markdown": "Reports usages when the `ORDER BY` clause is used without `TOP`, `OFFSET`, or `FOR XML` in views, inline functions, derived tables, subqueries, and common table expressions.\n\nFor more information about usages of `ORDER BY`, see [SELECT - ORDER BY Clause (Transact-SQL) at\ndocs.microsoft.com](https://docs.microsoft.com/en-us/sql/t-sql/queries/select-order-by-clause-transact-sql).\n\nExample (Microsoft SQL server):\n\n CREATE TABLE foo (a INT NOT NULL, b INT NOT NULL);\n\n SELECT *\n FROM (SELECT a, b\n FROM foo A\n WHERE a < 89\n ORDER BY b) ALIAS;\n\nIn a subquery, ORDER BY will be highlighted as an error. You can add TOP, OFFSET, or FOR XML to a subquery.\nAlternatively, use the **Delete element** quick-fix to delete the ORDER BY section.\n\nAfter the quick-fix is applied:\n\n SELECT *\n FROM (SELECT a, b\n FROM foo A\n WHERE a < 89) ALIAS;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "MsOrderBy", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "SQL server", - "index": 102, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlDeprecateTypeInspection", - "shortDescription": { - "text": "Deprecated type" - }, - "fullDescription": { - "text": "Reports usages of types that are deprecated and might disappear in future versions of DBMS. Reported types: LONG in Oracle (see Deprecated and Desupported Features at docs.oracle.com). TEXT, NTEXT, and IMAGE in Microsoft SQL Server (see Deprecated Database Engine Features in SQL Server 2016 at docs.microsoft.com). Example (Oracle): 'CREATE TABLE ot.foo(\na NUMBER GENERATED BY DEFAULT AS IDENTITY,\nb LONG NOT NULL\n);'", - "markdown": "Reports usages of types that are deprecated and might disappear in future versions of DBMS.\n\nReported types:\n\n* LONG in Oracle (see [Deprecated\n and Desupported Features at docs.oracle.com](https://docs.oracle.com/cd/A91202_01/901_doc/server.901/a90120/ch4_dep.htm#6690)).\n* TEXT, NTEXT, and IMAGE in Microsoft SQL Server (see [Deprecated Database Engine Features in SQL Server 2016 at docs.microsoft.com](https://docs.microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2016?view=sql-server-ver15)).\n\nExample (Oracle):\n\n CREATE TABLE ot.foo(\n a NUMBER GENERATED BY DEFAULT AS IDENTITY,\n b LONG NOT NULL\n );\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlDeprecateType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlGotoInspection", - "shortDescription": { - "text": "Usages of GOTO statements" - }, - "fullDescription": { - "text": "Reports usages of backward GOTO statements and GOTO statements used to exit a loop. The extensive use of GOTO statements is generally not recommended. For details, see GOTO statement in SQL procedures at ibm.com. Instead of jumping back to a previous statement using GOTO, consider using a loop. Instead of exiting the WHILE loop with GOTO, consider using other control-of-flow statements (for example, RETURN or BREAK). Example (Oracle): 'CREATE PROCEDURE test(n INT) AS\nDECLARE\n x INT;\nBEGIN\n x := 0;\n GOTO a;\n <> x := 1;\n IF (n = 0) THEN\n GOTO a;\n END IF;\n WHILE TRUE\n LOOP\n GOTO b;\n END LOOP;\n <> x := 3;\nEND;'", - "markdown": "Reports usages of backward GOTO statements and GOTO statements used to exit a loop.\n\nThe extensive use of GOTO statements is generally\nnot recommended. For details, see [GOTO statement in\nSQL\nprocedures at ibm.com](https://www.ibm.com/docs/no/db2/11.5?topic=procedures-goto-statement-in-sql).\n\nInstead of jumping back to a previous statement using GOTO, consider using a loop.\n\nInstead of exiting the WHILE loop with GOTO, consider using other control-of-flow statements (for example, RETURN or BREAK).\n\nExample (Oracle):\n\n CREATE PROCEDURE test(n INT) AS\n DECLARE\n x INT;\n BEGIN\n x := 0;\n GOTO a;\n <> x := 1;\n IF (n = 0) THEN\n GOTO a;\n END IF;\n WHILE TRUE\n LOOP\n GOTO b;\n END LOOP;\n <> x := 3;\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlGoto", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MysqlLoadDataPathInspection", - "shortDescription": { - "text": "LOAD statement path" - }, - "fullDescription": { - "text": "Reports paths that start with the tilde character in LOAD statements. Example (MySQL): 'CREATE TABLE table_name (id int);\nLOAD DATA LOCAL INFILE '~/Documents/some_file.txt'\nINTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n'\nIGNORE 1 LINES;' Instead of the tilde character, use a full path to the file.", - "markdown": "Reports paths that start with the tilde character in LOAD statements.\n\nExample (MySQL):\n\n CREATE TABLE table_name (id int);\n LOAD DATA LOCAL INFILE '~/Documents/some_file.txt'\n INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n'\n IGNORE 1 LINES;\n\nInstead of the tilde character, use a full path to the file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MysqlLoadDataPath", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "MySQL", - "index": 142, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlDtInspection", - "shortDescription": { - "text": "Ill-formed date/time literals" - }, - "fullDescription": { - "text": "Reports errors in date and time literals. This inspection is available in MySQL, Oracle, Db2, and H2. Example (MySQL): 'SELECT TIME '10 -12:13:14' FROM dual;\nSELECT TIME ' 12 : 13 : 14 ' FROM dual;\nSELECT TIME '12 13 14' FROM dual;\nSELECT TIME '12-13-14' FROM dual;\nSELECT TIME '12.13.14' FROM dual;\nSELECT TIME '12:13:' FROM dual;\nSELECT TIME '12:13' FROM dual;\nSELECT TIME '12:' FROM dual;' In this example, dates ignore the MySQL standard for date and time literals. Therefore, they will be highlighted. For more information about date and time literals in MySQL, see Date and Time Literals at dev.mysql.com. The following date and type literals are valid for MySQL. 'SELECT TIME '12:13:14' FROM dual;\nSELECT TIME '12:13:14.555' FROM dual;\nSELECT TIME '12:13:14.' FROM dual;\nSELECT TIME '-12:13:14' FROM dual;\nSELECT TIME '10 12:13:14' FROM dual;\nSELECT TIME '-10 12:13:14' FROM dual;'", - "markdown": "Reports errors in date and time literals. This inspection is available in MySQL, Oracle, Db2, and H2.\n\nExample (MySQL):\n\n SELECT TIME '10 -12:13:14' FROM dual;\n SELECT TIME ' 12 : 13 : 14 ' FROM dual;\n SELECT TIME '12 13 14' FROM dual;\n SELECT TIME '12-13-14' FROM dual;\n SELECT TIME '12.13.14' FROM dual;\n SELECT TIME '12:13:' FROM dual;\n SELECT TIME '12:13' FROM dual;\n SELECT TIME '12:' FROM dual;\n\nIn this example, dates ignore the MySQL standard for date and time literals. Therefore, they will be highlighted.\nFor more information about date and time literals in MySQL, see [Date and Time Literals at dev.mysql.com](https://dev.mysql.com/doc/refman/8.0/en/date-and-time-literals.html).\n\nThe following date and type literals are valid for MySQL.\n\n SELECT TIME '12:13:14' FROM dual;\n SELECT TIME '12:13:14.555' FROM dual;\n SELECT TIME '12:13:14.' FROM dual;\n SELECT TIME '-12:13:14' FROM dual;\n SELECT TIME '10 12:13:14' FROM dual;\n SELECT TIME '-10 12:13:14' FROM dual;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlDateTime", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlNoDataSourceInspection", - "shortDescription": { - "text": "No data sources configured" - }, - "fullDescription": { - "text": "Reports the absence of data sources in the Database tool window (View | Tool Windows | Database).", - "markdown": "Reports the absence of data sources in the **Database** tool window (**View \\| Tool Windows \\| Database**)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlNoDataSourceInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlConstantExpressionInspection", - "shortDescription": { - "text": "Constant expression" - }, - "fullDescription": { - "text": "Reports conditions and expressions that are always true, false or null. Example (MySQL): 'CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\nSELECT a FROM t1 WHERE 'Cat' = 'Cat';\nSELECT a FROM t1 WHERE 'Cat' = null;' The ''Cat' = 'Cat'' is always true and will be reported. The ''Cat' = null' is always null and will be reported.", - "markdown": "Reports conditions and expressions that are always true, false or null.\n\nExample (MySQL):\n\n CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\n SELECT a FROM t1 WHERE 'Cat' = 'Cat';\n SELECT a FROM t1 WHERE 'Cat' = null;\n\nThe `'Cat' = 'Cat'` is always true and will be reported.\n\nThe `'Cat' = null` is always null and will be reported." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlConstantExpression", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OraUnmatchedForwardDeclarationInspection", - "shortDescription": { - "text": "Forward declaration without definition" - }, - "fullDescription": { - "text": "Reports declarations of procedures and functions that are missing their implementation in code. In Oracle, you can declare a procedure or a function without its body, and write the implementation later. The inspection will report names of such procedures or functions that are left without implementation. Example (Oracle): 'DECLARE PROCEDURE foo(a int, b varchar2);\nBEGIN\n NULL;\nEND;' The 'foo' procedure is declared but is missing implementation. We can add the implementation to get rid of the error. 'DECLARE PROCEDURE foo(a int, b varchar2);\n PROCEDURE foo(a int, b varchar2) IS\nBEGIN\n NULL;\nEND;\nBEGIN\n NULL;\nEND;'", - "markdown": "Reports declarations of procedures and functions that are missing their implementation in code.\n\nIn Oracle, you can declare a procedure or a function without its body, and write the implementation later. The inspection will report names\nof such procedures or functions that are left without implementation.\n\nExample (Oracle):\n\n DECLARE PROCEDURE foo(a int, b varchar2);\n BEGIN\n NULL;\n END;\n\nThe `foo` procedure is declared but is missing implementation. We can add the implementation to get rid of the error.\n\n DECLARE PROCEDURE foo(a int, b varchar2);\n PROCEDURE foo(a int, b varchar2) IS\n BEGIN\n NULL;\n END;\n BEGIN\n NULL;\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "SqlUnmatchedForwardDeclaration", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Oracle", - "index": 123, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlWithoutWhereInspection", - "shortDescription": { - "text": "Delete or update statement without where clauses" - }, - "fullDescription": { - "text": "Reports usages of DELETE or UPDATE statements without WHERE clauses. Without WHERE clauses, DELETE drops all the data from the table, and UPDATE overwrites values for all the table rows. Example (MySQL): 'CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\nupdate t1 set a = 'Smith';\ndelete from t1;'", - "markdown": "Reports usages of DELETE or UPDATE statements without WHERE clauses.\n\nWithout WHERE clauses, DELETE drops all the data from the table, and UPDATE overwrites values for all the table rows.\n\nExample (MySQL):\n\n CREATE TABLE t1 (a TEXT, b INT, c BOOLEAN);\n update t1 set a = 'Smith';\n delete from t1;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlWithoutWhere", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MongoJSSideEffectsInspection", - "shortDescription": { - "text": "Statement with side effects" - }, - "fullDescription": { - "text": "Reports statements that can cause side effects while the data source is in read-only mode. For more information about enabling read-only mode, see Enable read-only mode for a connection in the IDE documentation. The Disable read-only mode quick-fix turns off the read-only mode for the respective data source. Example: 'db.my_collection.insertOne()'", - "markdown": "Reports statements that can cause side effects while the data source is in read-only mode.\n\nFor more information about enabling read-only mode, see\n[Enable\nread-only mode for a connection in the IDE documentation](https://www.jetbrains.com/help/datagrip/configuring-database-connections.html#enable-read-only-mode-for-a-connection).\n\nThe **Disable read-only mode** quick-fix turns off the read-only mode for the respective data source.\n\nExample:\n\n\n db.my_collection.insertOne()\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MongoJSSideEffects", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "MongoJS", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MongoJSExtSideEffectsInspection", - "shortDescription": { - "text": "Statement with side effects" - }, - "fullDescription": { - "text": "Reports statements that may cause side effects while the data source is in read-only mode. The quick-fix turns off the read-only mode for the respective data source. Example: 'db.my_collection.insertOne()'", - "markdown": "Reports statements that may cause side effects while the data source is in read-only mode.\n\nThe quick-fix turns off the read-only mode for the respective data source.\n\nExample:\n\n\n db.my_collection.insertOne()\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MongoJSSideEffects", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "MongoJS", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlUnusedSubqueryItemInspection", - "shortDescription": { - "text": "Unused subquery item" - }, - "fullDescription": { - "text": "Reports columns, aliases, and other subquery items that are not referenced in the outer query expression. Example (PostgreSQL): 'CREATE TABLE for_subquery(id INT);\nSELECT a, q FROM (SELECT 1 AS a, 10 AS b, 2 + 3 AS q, id\n FROM for_subquery) x;' We reference 'a' and 'q' aliases from a subquery. But the 'b' alias and the 'id' column are not referenced in the outer SELECT statement. Therefore, 'b' and 'id' are grayed out.", - "markdown": "Reports columns, aliases, and other subquery items that are not referenced in the outer query expression.\n\nExample (PostgreSQL):\n\n CREATE TABLE for_subquery(id INT);\n SELECT a, q FROM (SELECT 1 AS a, 10 AS b, 2 + 3 AS q, id\n FROM for_subquery) x;\n\nWe reference `a` and `q` aliases from a subquery. But the `b` alias and the `id` column are\nnot referenced in the outer SELECT statement. Therefore, `b` and `id` are grayed out." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlUnused", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlSideEffectsInspection", - "shortDescription": { - "text": "Statement with side effects" - }, - "fullDescription": { - "text": "Reports statements that might lead to modification of a database during a read-only connection. To enable read-only mode for a connection, right-click a data source in the Database tool window (View | Tool Windows | Database) and select Properties. In the Data Sources and Drivers dialog, click the Options tab and select the Read-only checkbox. Example (MySQL): 'CREATE TABLE foo(a INT);\nINSERT INTO foo VALUES (1);' As 'CREATE TABLE' and 'INSERT INTO' statements lead to a database modification, these statements will be highlighted in read-only connection mode.", - "markdown": "Reports statements that might lead to modification of a database during a read-only connection.\n\nTo enable read-only mode for a\nconnection,\nright-click a data source in the **Database** tool window (**View \\| Tool Windows \\| Database** ) and select **Properties** .\nIn the **Data Sources and Drivers** dialog, click the **Options** tab and select the **Read-only** checkbox.\n\nExample (MySQL):\n\n CREATE TABLE foo(a INT);\n INSERT INTO foo VALUES (1);\n\nAs `CREATE TABLE` and `INSERT INTO` statements lead to a database modification, these statements will be highlighted\nin read-only connection mode." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlSideEffects", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlJoinWithoutOnInspection", - "shortDescription": { - "text": "Unsafe 'join' clause in 'delete' statement" - }, - "fullDescription": { - "text": "Reports missing conditional checks for statements that might modify the whole database. For example, usages of JOIN clauses inside DELETE statements without ON or WHERE. Without conditional checks on JOIN, DELETE drops contents of the entire table. Example (MySQL): 'CREATE TABLE foo (a INT,b INT,c INT);\nCREATE TABLE bar (a INT,b INT,c INT);\n\nDELETE table1 FROM foo table1 INNER JOIN bar table2;'", - "markdown": "Reports missing conditional checks for statements that might modify the whole database.\n\nFor example, usages of JOIN clauses inside DELETE statements without ON or WHERE. Without conditional checks on JOIN, DELETE drops\ncontents of the entire table.\n\nExample (MySQL):\n\n CREATE TABLE foo (a INT,b INT,c INT);\n CREATE TABLE bar (a INT,b INT,c INT);\n\n DELETE table1 FROM foo table1 INNER JOIN bar table2;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlJoinWithoutOn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlDropIndexedColumnInspection", - "shortDescription": { - "text": "Index is dependent on column" - }, - "fullDescription": { - "text": "Reports cases when you try to drop columns from indexed tables. This inspection is available in Microsoft SQL Server and Sybase ASE. Example (Microsoft SQL Server): 'CREATE TABLE test_index\n(\ncol INT NOT NULL,\ncol2 INT NOT NULL,\ncol3 INT NOT NULL UNIQUE,\ncol4 VARCHAR(200)\n);\n\nCREATE UNIQUE INDEX aaaa ON test_index (col, col2);\n\nALTER TABLE test_index\nDROP COLUMN col;' You cannot delete the 'col' column because it is in the indexed table. To delete the column, you need to delete the 'aaaa' index first (for example, DROP INDEX aaaa).", - "markdown": "Reports cases when you try to drop columns from indexed tables. This inspection is available in Microsoft SQL Server and Sybase ASE.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE test_index\n (\n col INT NOT NULL,\n col2 INT NOT NULL,\n col3 INT NOT NULL UNIQUE,\n col4 VARCHAR(200)\n );\n\n CREATE UNIQUE INDEX aaaa ON test_index (col, col2);\n\n ALTER TABLE test_index\n DROP COLUMN col;\n\nYou cannot delete the `col` column because it is in the indexed table. To delete the column, you need to delete the\n`aaaa` index first (for example, DROP INDEX aaaa)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlDropIndexedColumn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlTypeInspection", - "shortDescription": { - "text": "Types compatibility" - }, - "fullDescription": { - "text": "Reports type-related errors.", - "markdown": "Reports type-related errors." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlType", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlUnicodeStringLiteralInspection", - "shortDescription": { - "text": "Unicode usage in SQL" - }, - "fullDescription": { - "text": "Reports string literals that use national characters without the 'N' prefix. Without the N prefix, the string is converted to the default code page of the database. This default code page may not recognize certain characters. For more information, see nchar and nvarchar (Transact-SQL) at docs.microsoft.com. Example (Microsoft SQL Server): 'SELECT 'abcde' AS a;\nSELECT N'abcde' AS b;\nSELECT 'абвгд' AS c;\nSELECT N'абвгд' AS d;' The 'SELECT 'абвгд' AS c;' does not have the 'N' prefix, the ''абвгд'' part will be highlighted.", - "markdown": "Reports string literals that use national characters without the `N` prefix.\n\nWithout the N prefix, the string is converted to the default\ncode page of the database. This default code page may not recognize certain characters. For more information, see\n[nchar and nvarchar\n(Transact-SQL)\nat docs.microsoft.com](https://docs.microsoft.com/en-us/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql).\n\nExample (Microsoft SQL Server):\n\n SELECT 'abcde' AS a;\n SELECT N'abcde' AS b;\n SELECT 'абвгд' AS c;\n SELECT N'абвгд' AS d;\n\nThe `SELECT 'абвгд' AS c;` does not have the `N` prefix, the `'абвгд'` part will be highlighted." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlUnicodeStringLiteral", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlUnusedVariableInspection", - "shortDescription": { - "text": "Unused variable" - }, - "fullDescription": { - "text": "Reports unused arguments, variables, or parameters. Example (PostgreSQL): 'CREATE FUNCTION foo(PARAMUSED INT, PARAMUNUSED INT) RETURNS INT AS\n$$\nBEGIN\n RETURN PARAMUSED;\nEND\n$$ LANGUAGE plpgsql;' The 'PARAMUNUSED' parameter is not used in the function and might be deleted.", - "markdown": "Reports unused arguments, variables, or parameters.\n\nExample (PostgreSQL):\n\n CREATE FUNCTION foo(PARAMUSED INT, PARAMUNUSED INT) RETURNS INT AS\n $$\n BEGIN\n RETURN PARAMUSED;\n END\n $$ LANGUAGE plpgsql;\n\nThe `PARAMUNUSED` parameter is not used in the function and might be deleted." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlUnused", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "PgSelectFromProcedureInspection", - "shortDescription": { - "text": "Postgres: Select from procedure call" - }, - "fullDescription": { - "text": "Reports situations when you make SELECT from a function or a DBLINK without an alias with a type (for example, 'AS t1(s VARCHAR)'). This requirement does not apply to scalar functions. Example (PostgreSQL): 'CREATE FUNCTION produce_a_table() RETURNS RECORD AS $$\nSELECT 1;\n$$ LANGUAGE sql;\nSELECT * FROM produce_a_table() AS s (c1 INT);\nSELECT * FROM produce_a_table() AS s (c1);\nSELECT * FROM DBLINK('dbname=mydb', 'SELECT proname, prosrc FROM pg_proc') AS t1;' The 'AS s (c1 INT)' has a typed alias, while 'AS s (c1)' and 'AS t1' do not. In this case, the second call of 'produce_a_table()' and 'DBLINK()' will be highlighted.", - "markdown": "Reports situations when you make SELECT from a function or a DBLINK without an alias with a type (for example, `AS t1(s VARCHAR)`).\n\nThis requirement does not apply to scalar functions.\n\nExample (PostgreSQL):\n\n CREATE FUNCTION produce_a_table() RETURNS RECORD AS $$\n SELECT 1;\n $$ LANGUAGE sql;\n SELECT * FROM produce_a_table() AS s (c1 INT);\n SELECT * FROM produce_a_table() AS s (c1);\n SELECT * FROM DBLINK('dbname=mydb', 'SELECT proname, prosrc FROM pg_proc') AS t1;\n\nThe `AS s (c1 INT)` has a typed alias, while `AS s (c1)` and `AS t1` do not.\nIn this case, the second call of `produce_a_table()` and `DBLINK()` will be highlighted." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PgSelectFromProcedure", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "PostgreSQL", - "index": 152, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlStorageInspection", - "shortDescription": { - "text": "SQL source modification detection" - }, - "fullDescription": { - "text": "Reports situations when source code of a database object has been changed. The inspection is triggered when you perform database or object introspection. The introspection is run when you open source code of an object, run statements, and perform code refactoring. Also, you can run introspection by right-clicking an object and selecting Refresh. The inspection covers the following situations: Object source code was changed in the database but code in the editor was not updated. Works in PostgreSQL, Microsoft SQL Server, Oracle, and Sybase ASE. You changed the object source code, introspected the database, but source code has been already changed by someone else. The database introspector was updated in the IDE and you need to download new object properties that were missing in the previous introspector version.", - "markdown": "Reports situations when source code of a database object has been changed.\n\nThe inspection is triggered when you perform database or object introspection. The introspection is run when you open source code of an\nobject, run statements, and perform code refactoring.\nAlso, you can run introspection by right-clicking an object and selecting **Refresh**.\n\nThe inspection covers the following situations:\n\n* Object source code was changed in the database but code in the editor was not updated. Works in PostgreSQL, Microsoft SQL Server, Oracle, and Sybase ASE.\n* You changed the object source code, introspected the database, but source code has been already changed by someone else.\n* The database introspector was updated in the IDE and you need to download new object properties that were missing in the previous introspector version." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlStorageInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlSignatureInspection", - "shortDescription": { - "text": "Function signature" - }, - "fullDescription": { - "text": "Reports signature issues for built-in functions. The inspection will report a wrong number of arguments, invalid keywords, wrong data types, and other issues. Example (MySQL): 'CREATE TABLE foo (a INT, b INT, c INT)\n\nSELECT IFNULL() FROM foo; -- error\nSELECT IFNULL(a) FROM foo; -- error\nSELECT IFNULL(a, b) FROM foo; -- OK\nSELECT IFNULL(a, b, c) FROM foo; -- error' In MySQL, the 'IFNULL()' function accepts strictly two arguments. So, only the 'SELECT IFNULL(a, b) FROM foo;' query is correct.", - "markdown": "Reports signature issues for built-in functions.\n\nThe inspection will report a wrong number of arguments, invalid keywords, wrong data types, and other issues.\n\nExample (MySQL):\n\n CREATE TABLE foo (a INT, b INT, c INT)\n\n SELECT IFNULL() FROM foo; -- error\n SELECT IFNULL(a) FROM foo; -- error\n SELECT IFNULL(a, b) FROM foo; -- OK\n SELECT IFNULL(a, b, c) FROM foo; -- error\n\nIn MySQL, the `IFNULL()` function accepts strictly two arguments. So, only the `SELECT IFNULL(a, b) FROM foo;`\nquery is correct." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlSignature", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlRedundantOrderingDirectionInspection", - "shortDescription": { - "text": "Redundant ordering direction" - }, - "fullDescription": { - "text": "Reports redundant ordering directions like ASC and DESC in ORDER BY clauses. Example (MySQL): 'CREATE TABLE foo(a INT, b INT, c INT);\nSELECT * FROM foo ORDER BY a ASC, b DESC, c ASC;' The ORDER BY keyword sorts the records in the ascending order by default. So, the 'ASC' keyword for 'a' and 'c' columns is redundant.", - "markdown": "Reports redundant ordering directions like ASC and DESC in ORDER BY clauses.\n\nExample (MySQL):\n\n CREATE TABLE foo(a INT, b INT, c INT);\n SELECT * FROM foo ORDER BY a ASC, b DESC, c ASC;\n\nThe ORDER BY keyword sorts the records in the ascending order by default. So, the `ASC` keyword for `a` and\n`c` columns is redundant." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlRedundantOrderingDirection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "OraOverloadInspection", - "shortDescription": { - "text": "Overloading errors" - }, - "fullDescription": { - "text": "Reports invalid cases of subprogram overloading in Oracle. Example (Oracle): 'DECLARE\n SUBTYPE fff IS BINARY_INTEGER;\n SUBTYPE ggg IS NATURAL;\n PROCEDURE foo (a IN ggg) IS BEGIN NULL; END;\n PROCEDURE foo (a IN fff) IS BEGIN NULL; END;\nBEGIN\n NULL;\nEND;' You cannot overload subprograms which parameters differ only in subtypes. For example, you cannot overload procedures where one accepts a BINARY INTEGER parameter and the other accepts a NATURAL parameter. For more information about restrictions on procedure overloading, see Restrictions on Overloading at docs.oracle.com.", - "markdown": "Reports invalid cases of subprogram overloading in Oracle.\n\nExample (Oracle):\n\n DECLARE\n SUBTYPE fff IS BINARY_INTEGER;\n SUBTYPE ggg IS NATURAL;\n PROCEDURE foo (a IN ggg) IS BEGIN NULL; END;\n PROCEDURE foo (a IN fff) IS BEGIN NULL; END;\n BEGIN\n NULL;\n END;\n\nYou cannot overload subprograms which parameters differ only in subtypes. For example, you cannot overload procedures where one accepts a\nBINARY INTEGER parameter and the other accepts a NATURAL parameter. For more information about restrictions on procedure overloading,\nsee [Restrictions on Overloading at docs.oracle.com](https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/subprograms.htm)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlOverload", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Oracle", - "index": 123, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MysqlSpaceAfterFunctionNameInspection", - "shortDescription": { - "text": "Whitespace between the function name and the open parenthesis" - }, - "fullDescription": { - "text": "Reports any whitespace in a function call between the function name and the open parenthesis, which is not supported by default. Example (MySQL): 'SELECT MAX (qty) FROM orders;'", - "markdown": "Reports any whitespace in a function call between the function name and the open parenthesis, which is not supported by default.\n\nExample (MySQL):\n\n SELECT MAX (qty) FROM orders;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "MysqlSpaceAfterFunctionName", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "MySQL", - "index": 142, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlAutoIncrementDuplicateInspection", - "shortDescription": { - "text": "Auto-increment duplicate" - }, - "fullDescription": { - "text": "Reports tables that contain two columns with an automatic increment. In MySQL, Microsoft SQL Server, and Db2 dialects, a table can have only one field with a auto-increment option, and this field must be a key. Example (MySQL): 'CREATE TABLE my_table\n(\n id INT AUTO_INCREMENT,\n c2 INT AUTO_INCREMENT,\n);' The AUTO_INCREMENT constraint for 'c2' will be highlighted as 'c1' already has this constraint. To fix the warning, you can make 'id' a primary key and delete AUTO_INCREMENT for 'c2'. 'CREATE TABLE my_table\n(\n id INT AUTO_INCREMENT PRIMARY KEY,\n c2 INT,\n);'", - "markdown": "Reports tables that contain two columns with an automatic increment. In MySQL, Microsoft SQL Server, and Db2 dialects, a table can have only one field with a auto-increment option, and this field must be a key.\n\nExample (MySQL):\n\n CREATE TABLE my_table\n (\n id INT AUTO_INCREMENT,\n c2 INT AUTO_INCREMENT,\n );\n\nThe AUTO_INCREMENT constraint for `c2` will be highlighted as `c1` already has this constraint. To fix the warning,\nyou can make `id` a primary key and delete AUTO_INCREMENT for `c2`.\n\n CREATE TABLE my_table\n (\n id INT AUTO_INCREMENT PRIMARY KEY,\n c2 INT,\n );\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlAutoIncrementDuplicate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlStringLengthExceededInspection", - "shortDescription": { - "text": "Implicit string truncation" - }, - "fullDescription": { - "text": "Reports variables that exceed the defined length in characters. Example (Microsoft SQL Server): 'CREATE PROCEDURE test() AS\nBEGIN\nDECLARE myVarOk VARCHAR(5) = 'abcde';\nDECLARE myVarExceeded VARCHAR(5) = 'abcde12345';\n\nSET myVarOk = 'xyz';\nSET myVarExceeded = '123456789';\nEND;' The 'myVarExceeded' variable is defined as 'VARCHAR(5)' but both assigned values (''abcde12345'' and ''123456789'') exceed this limitation. You can truncate assigned values or increase the defined length. To increase the length, use the Increase type length quick-fix. After the quick-fix is applied: 'CREATE PROCEDURE test() AS\nBEGIN\nDECLARE myVarOk VARCHAR(5) = 'abcde';\nDECLARE myVarExceeded VARCHAR(10) = 'abcde12345';\n\nSET myVarOk = 'xyz';\nSET myVarExceeded = '123456789';\nEND;'", - "markdown": "Reports variables that exceed the defined length in characters.\n\nExample (Microsoft SQL Server):\n\n CREATE PROCEDURE test() AS\n BEGIN\n DECLARE myVarOk VARCHAR(5) = 'abcde';\n DECLARE myVarExceeded VARCHAR(5) = 'abcde12345';\n\n SET myVarOk = 'xyz';\n SET myVarExceeded = '123456789';\n END;\n\nThe `myVarExceeded` variable is defined as `VARCHAR(5)` but both assigned values (`'abcde12345'` and\n`'123456789'`) exceed this limitation. You can truncate assigned values or increase the defined length.\nTo increase the length, use the **Increase type length** quick-fix.\n\nAfter the quick-fix is applied:\n\n CREATE PROCEDURE test() AS\n BEGIN\n DECLARE myVarOk VARCHAR(5) = 'abcde';\n DECLARE myVarExceeded VARCHAR(10) = 'abcde12345';\n\n SET myVarOk = 'xyz';\n SET myVarExceeded = '123456789';\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlStringLengthExceeded", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MysqlParsingInspection", - "shortDescription": { - "text": "Unsupported syntax in pre-8.0 versions" - }, - "fullDescription": { - "text": "Reports invalid usages of UNION in queries. The inspection works in MySQL versions that are earlier than 8.0. Example (MySQL): 'SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;'", - "markdown": "Reports invalid usages of UNION in queries.\n\nThe inspection works in MySQL versions that are earlier than 8.0.\n\nExample (MySQL):\n\n\n SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MysqlParsing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "MySQL", - "index": 142, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlCallNotationInspection", - "shortDescription": { - "text": "Using of named and positional arguments" - }, - "fullDescription": { - "text": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2. Example (In PostgreSQL): 'CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n$$\nBEGIN\n RETURN a + b + c;\nEND\n$$;\nSELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\nSELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\nSELECT foo(b => 2, 1, 3);'", - "markdown": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2.\n\nExample (In PostgreSQL):\n\n CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n $$\n BEGIN\n RETURN a + b + c;\n END\n $$;\n SELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\n SELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\n SELECT foo(b => 2, 1, 3);\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "SqlCallNotation", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlShadowingAliasInspection", - "shortDescription": { - "text": "Column is shadowed by alias" - }, - "fullDescription": { - "text": "Reports SELECT aliases with names that match column names in the FROM clause. Example (MySQL): 'CREATE TABLE foo (a INT, b INT, c INT);\nSELECT a b, c FROM foo;' The 'a' column uses the 'b' alias but the 'b' name is also used by the column from the 'foo' table.", - "markdown": "Reports SELECT aliases with names that match column names in the FROM clause.\n\nExample (MySQL):\n\n CREATE TABLE foo (a INT, b INT, c INT);\n SELECT a b, c FROM foo;\n\nThe `a` column uses the `b` alias but the `b` name is also used by the column from the `foo`\ntable." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlShadowingAlias", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlUnreachableCodeInspection", - "shortDescription": { - "text": "Unreachable code" - }, - "fullDescription": { - "text": "Reports unreachable statements inside SQL routines. Example (Microsoft SQL Server): 'CREATE FUNCTION foo() RETURNS INT AS\nBEGIN\n THROW;\n RETURN 1;\nEND;' In Microsoft SQL Server, the 'THROW' statement raises an exception and transfers execution to the CATCH block of the TRY...CATCH construct. Therefore, the 'RETURN 1;' part will never be executed.", - "markdown": "Reports unreachable statements inside SQL routines.\n\nExample (Microsoft SQL Server):\n\n CREATE FUNCTION foo() RETURNS INT AS\n BEGIN\n THROW;\n RETURN 1;\n END;\n\nIn Microsoft SQL Server, the `THROW` statement raises an exception and transfers execution to the CATCH block of the TRY...CATCH\nconstruct. Therefore, the `RETURN 1;` part will never be executed." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlUnreachable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlResolveInspection", - "shortDescription": { - "text": "Unresolved reference" - }, - "fullDescription": { - "text": "Reports unresolved SQL references. Example (MySQL): 'CREATE TABLE users(id INT, name VARCHAR(40));\nCREATE TABLE admins(id INT, col1 INT);\n\nSELECT users.id, admins.id FROM admins WHERE admins.id > 1;' The 'users.id' column is unresolved because the 'users' table is missing in the FROM clause.", - "markdown": "Reports unresolved SQL references.\n\nExample (MySQL):\n\n CREATE TABLE users(id INT, name VARCHAR(40));\n CREATE TABLE admins(id INT, col1 INT);\n\n SELECT users.id, admins.id FROM admins WHERE admins.id > 1;\n\nThe `users.id` column is unresolved because the `users` table is missing in the FROM clause." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "SqlResolve", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlRedundantLimitInspection", - "shortDescription": { - "text": "Redundant row limiting in queries" - }, - "fullDescription": { - "text": "Reports redundant row limiting clauses like FETCH and LIMIT in queries. Example (PostgreSQL): 'CREATE TABLE foo(a INT);\n\nSELECT * FROM foo WHERE EXISTS(SELECT * FROM foo LIMIT 2);\nSELECT * FROM foo WHERE EXISTS(SELECT * FROM foo FETCH FIRST 2 ROWS ONLY);' To fix the warning, you can add OFFSET to limiting clauses. If OFFSET is missing, then LIMIT is redundant because the usage of LIMIT does not influence the operation result of EXISTS. In case with OFFSET, we skip first 'N' rows and this will influence the output. 'SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo OFFSET 1 ROW LIMIT 2);\nSELECT * FROM foo WHERE EXISTS(SELECT * FROM foo OFFSET 1 ROW FETCH FIRST 2 ROWS ONLY);'", - "markdown": "Reports redundant row limiting clauses like FETCH and LIMIT in queries.\n\nExample (PostgreSQL):\n\n CREATE TABLE foo(a INT);\n\n SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo LIMIT 2);\n SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo FETCH FIRST 2 ROWS ONLY);\n\nTo fix the warning, you can add OFFSET to limiting clauses. If OFFSET is missing, then LIMIT is redundant because\nthe usage of LIMIT does not influence the operation result of EXISTS. In case with OFFSET, we skip first `N` rows and this will\ninfluence the output.\n\n SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo OFFSET 1 ROW LIMIT 2);\n SELECT * FROM foo WHERE EXISTS(SELECT * FROM foo OFFSET 1 ROW FETCH FIRST 2 ROWS ONLY);\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlRedundantLimit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlDerivedTableAliasInspection", - "shortDescription": { - "text": "Each derived table should have alias" - }, - "fullDescription": { - "text": "Reports derived tables without aliases. Example (MySQL): 'CREATE TABLE table1 (id INT, name VARCHAR(20), cats FLOAT);\nCREATE TABLE table2 (id INT, age INTEGER);\n\nSELECT id AS ID, name, cats, age\nFROM (SELECT table1.id, name, cats, age\nFROM table1\nJOIN table2 ON table1.id = table2.id);' According to Derived Tables at dev.mysql.com, an alias is mandatory. You can add the alias by using the Introduce alias quick-fix. After the quick-fix is applied: 'SELECT id AS ID, name, cats, age\nFROM (SELECT table1.id, name, cats, age\nFROM table1\nJOIN table2 ON table1.id = table2.id);'", - "markdown": "Reports derived tables without aliases.\n\nExample (MySQL):\n\n CREATE TABLE table1 (id INT, name VARCHAR(20), cats FLOAT);\n CREATE TABLE table2 (id INT, age INTEGER);\n\n SELECT id AS ID, name, cats, age\n FROM (SELECT table1.id, name, cats, age\n FROM table1\n JOIN table2 ON table1.id = table2.id);\n\nAccording to [Derived Tables at dev.mysql.com](https://dev.mysql.com/doc/refman/8.0/en/derived-tables.html), an alias is\nmandatory. You can add the alias by using the **Introduce alias** quick-fix.\n\nAfter the quick-fix is applied:\n\n SELECT id AS ID, name, cats, age\n FROM (SELECT table1.id, name, cats, age\n FROM table1\n JOIN table2 ON table1.id = table2.id);\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlDerivedTableAlias", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlCaseVsCoalesceInspection", - "shortDescription": { - "text": "Using CASE instead of COALESCE function and vice versa" - }, - "fullDescription": { - "text": "Reports situations when CASE and COALESCE calls are interchangeable. This inspection has the following intention actions: Replace with 'COALESCE' call and the opposite one Replace with CASE expression. Example (MySQL): 'SELECT\n -- this CASE may be replaced by COALESCE\n\tCASE\n\t\tWHEN C1 IS NOT NULL THEN C1\n\t\tELSE 0\n\t\tEND\nFROM dual;' In the example, the CASE statement can be replaced with 'SELECT COALESCE(C1, 0)' that produces the same output. If you prefer using CASE expressions, select the Prefer CASE expressions over COALESCE function option on the inspection page.", - "markdown": "Reports situations when CASE and COALESCE calls are interchangeable. This inspection has the following intention actions: **Replace\nwith 'COALESCE' call** and the opposite one **Replace with CASE expression** .\n\nExample (MySQL):\n\n SELECT\n -- this CASE may be replaced by COALESCE\n \tCASE\n \t\tWHEN C1 IS NOT NULL THEN C1\n \t\tELSE 0\n \t\tEND\n FROM dual;\n\nIn the example, the CASE statement can be replaced with `SELECT COALESCE(C1, 0)` that produces the same output.\n\nIf you prefer using CASE expressions, select the **Prefer CASE expressions over COALESCE function** option on\nthe inspection page." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlCaseVsCoalesce", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlRedundantCodeInCoalesceInspection", - "shortDescription": { - "text": "Redundant code in COALESCE call" - }, - "fullDescription": { - "text": "Reports all the arguments except for the first expression that does not evaluate to NULL in COALESCE functions. Example (MySQL): 'SELECT COALESCE(NULL, NULL, NULL, 42, NULL, 'string') as a;' The first NOT NULL argument is '42', all other arguments will be grayed out.", - "markdown": "Reports all the arguments except for the first expression that does not evaluate to NULL in COALESCE functions.\n\nExample (MySQL):\n\n SELECT COALESCE(NULL, NULL, NULL, 42, NULL, 'string') as a;\n\nThe first NOT NULL argument is `42`, all other arguments will be grayed out." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlRedundantCodeInCoalesce", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlAggregatesInspection", - "shortDescription": { - "text": "Aggregate-related problems" - }, - "fullDescription": { - "text": "Reports invalid usages of SQL aggregate functions. The following situations are considered: Columns that are used in HAVING and ORDER BY clauses but are missed in GROUP BY clauses. 'CREATE TABLE foo(id INT PRIMARY KEY, a INT, b INT);\nSELECT a, MAX(b) FROM foo GROUP BY a HAVING b > 0;\nSELECT * FROM foo GROUP BY a ORDER BY b;' This rule does not apply when grouping is made by the primary key. 'SELECT * FROM foo GROUP BY id ORDER BY b;' Aggregate functions in a wrong context. Usually, you can use aggregate functions in the following contexts: a list of expressions in SELECT; in HAVING and ORDER BY sections; and other dialect-specific cases. The following queries will display an error. 'SELECT a FROM foo WHERE MAX(b) > 0;\nSELECT a FROM foo GROUP BY MAX(a);' Nested calls of aggregate functions. 'SELECT MAX(SUM(a)) FROM foo GROUP BY a;' This rule does not apply to analytic functions. The following query is valid and correct. 'SELECT MAX(SUM(a) OVER ()) FROM foo;' Usages of HAVING without aggregate functions. In this case, consider rewriting your code using the WHERE section. 'SELECT a, MAX(b) FROM foo GROUP BY a HAVING a > 0;'", - "markdown": "Reports invalid usages of SQL aggregate functions.\n\nThe following situations are considered:\n\n* Columns that are used in HAVING and ORDER BY clauses but are missed in GROUP BY clauses.\n\n CREATE TABLE foo(id INT PRIMARY KEY, a INT, b INT);\n SELECT a, MAX(b) FROM foo GROUP BY a HAVING b > 0;\n SELECT * FROM foo GROUP BY a ORDER BY b;\n\n This rule does not apply when grouping is made by the primary key.\n\n SELECT * FROM foo GROUP BY id ORDER BY b;\n\n* Aggregate functions in a wrong context. Usually, you can use aggregate functions in the following contexts: a list of expressions in\n SELECT; in HAVING and ORDER BY sections; and other dialect-specific cases. The following queries will display an error.\n\n SELECT a FROM foo WHERE MAX(b) > 0;\n SELECT a FROM foo GROUP BY MAX(a);\n\n* Nested calls of aggregate functions.\n\n SELECT MAX(SUM(a)) FROM foo GROUP BY a;\n\n This rule does not apply to analytic functions. The following query is valid and correct.\n\n SELECT MAX(SUM(a) OVER ()) FROM foo;\n\n* Usages of HAVING without aggregate functions. In this case, consider rewriting your code using the WHERE section.\n\n SELECT a, MAX(b) FROM foo GROUP BY a HAVING a > 0;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlAggregates", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlMissingColumnAliasesInspection", - "shortDescription": { - "text": "Missing column aliases" - }, - "fullDescription": { - "text": "Reports queries without explicit aliases in output expressions (for example, in the SELECT statement). Example (PostgreSQL): 'CREATE TABLE foo(a INT, b INT);\n\nSELECT 1, a + 1 AS A2, MAX(b) AS M\nFROM foo;'", - "markdown": "Reports queries without explicit aliases in output expressions (for example, in the SELECT statement).\n\nExample (PostgreSQL):\n\n CREATE TABLE foo(a INT, b INT);\n\n SELECT 1, a + 1 AS A2, MAX(b) AS M\n FROM foo;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlMissingColumnAliases", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlAddNotNullColumnInspection", - "shortDescription": { - "text": "Adding not null column without default value" - }, - "fullDescription": { - "text": "Reports attempts to create NOT NULL columns without DEFAULT values. Example (Microsoft SQL Server): 'CREATE TABLE foo (a INT, b INT)\n\nALTER TABLE foo ADD c INT NOT NULL;' By default, a column holds NULL values. In the example, we use the NOT NULL constraint that enforces a column not to accept NULL values. If we prohibit to use NULL values, we must set the DEFAULT value that SQL can use when we create a new record. 'ALTER TABLE foo ADD c INT NOT NULL DEFAULT 42;' You can quickly add the DEFAULT value by using the Add DEFAULT value quick-fix.", - "markdown": "Reports attempts to create NOT NULL columns without DEFAULT values.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE foo (a INT, b INT)\n\n ALTER TABLE foo ADD c INT NOT NULL;\n\nBy default, a column holds NULL values. In the example, we use the NOT NULL constraint that enforces a column not to accept NULL values.\nIf we prohibit to use NULL values, we must set the DEFAULT value that SQL can use when we create a new record.\n\n ALTER TABLE foo ADD c INT NOT NULL DEFAULT 42;\n\nYou can quickly add the DEFAULT value by using the **Add DEFAULT value** quick-fix." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlAddNotNullColumn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MongoJSExtResolveInspection", - "shortDescription": { - "text": "Resolution problems" - }, - "fullDescription": { - "text": "Reports unresolved references in MongoDB and JavaScript code.", - "markdown": "Reports unresolved references in MongoDB and JavaScript code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MongoJSResolve", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "MongoJS", - "index": 89, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlJoinCountInspection", - "shortDescription": { - "text": "Excessive JOIN count" - }, - "fullDescription": { - "text": "Reports queries with excessive number of JOINS. Using too many joins is generally not recommended for performance reasons. 'SELECT * FROM a inner join b using(id) inner join c using (id) inner join d using (id) inner join e using (id)'", - "markdown": "Reports queries with excessive number of JOINS.\n\nUsing too many joins is generally\nnot recommended for performance reasons.\n\n SELECT * FROM a inner join b using(id) inner join c using (id) inner join d using (id) inner join e using (id)\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlJoinCount", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlIllegalCursorStateInspection", - "shortDescription": { - "text": "Illegal cursor state" - }, - "fullDescription": { - "text": "Reports illegal cursor states inside SQL routines. A routine has CLOSE or FETCH statements but a cursor might be closed. A routine has the OPEN statement but a cursor might be opened. Example (Microsoft SQL Server): 'CREATE TABLE t(col INT);\n\nCREATE PROCEDURE foo() AS\nBEGIN\nDECLARE my_cursor CURSOR FOR SELECT * FROM t;\nDECLARE a INT;\nFETCH my_cursor INTO a;\nCLOSE my_cursor;\nEND;' According to CLOSE (Transact-SQL) at docs.microsoft.com, CLOSE must be issued on an open cursor, and CLOSE is not allowed on cursors that have only been declared or are already closed. So, we need to open the cursor to fix the warning. 'CREATE PROCEDURE foo() AS\nBEGIN\nDECLARE my_cursor CURSOR FOR SELECT * FROM t;\nDECLARE a INT;\nOPEN my_cursor;\nFETCH my_cursor INTO a;\nCLOSE my_cursor;\nEND;'", - "markdown": "Reports illegal cursor states inside SQL routines.\n\n* A routine has CLOSE or FETCH statements but a cursor might be closed.\n* A routine has the OPEN statement but a cursor might be opened.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE t(col INT);\n\n CREATE PROCEDURE foo() AS\n BEGIN\n DECLARE my_cursor CURSOR FOR SELECT * FROM t;\n DECLARE a INT;\n FETCH my_cursor INTO a;\n CLOSE my_cursor;\n END;\n\nAccording to [CLOSE (Transact-SQL) at\ndocs.microsoft.com](https://docs.microsoft.com/en-us/sql/t-sql/language-elements/close-transact-sql), CLOSE must be issued on an open cursor, and CLOSE is not allowed on cursors that have only been declared or are\nalready closed. So, we need to open the cursor to fix the warning.\n\n CREATE PROCEDURE foo() AS\n BEGIN\n DECLARE my_cursor CURSOR FOR SELECT * FROM t;\n DECLARE a INT;\n OPEN my_cursor;\n FETCH my_cursor INTO a;\n CLOSE my_cursor;\n END;\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlIllegalCursorState", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlDuplicateColumnInspection", - "shortDescription": { - "text": "Duplicating column name in SELECT" - }, - "fullDescription": { - "text": "Reports duplicated names of column aliases in SELECT lists. Example (Sybase ASE): 'CREATE TABLE t1 (a TEXT, b INT, c INT);\n\nSELECT a AS x, b AS x FROM t1;' The 'x' alias name is used for 'a' and 'b' columns. These assignments are highlighted as errors because you cannot use identical alias names for columns in Sybase ASE.", - "markdown": "Reports duplicated names of column aliases in SELECT lists.\n\nExample (Sybase ASE):\n\n CREATE TABLE t1 (a TEXT, b INT, c INT);\n\n SELECT a AS x, b AS x FROM t1;\n\nThe `x` alias name is used for `a` and `b` columns. These assignments are highlighted as errors because\nyou cannot use identical alias names for columns in Sybase ASE." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlDuplicateColumn", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SqlIdentifierInspection", - "shortDescription": { - "text": "Identifier should be quoted" - }, - "fullDescription": { - "text": "Reports situations when you use SQL reserved keywords as identifier names in your query. Example (Microsoft SQL Server): 'CREATE TABLE select (identity INT IDENTITY NOT NULL, order INT NOT NULL);' We use 'select', 'identity', and 'order' as table and column names. But they are also reserved keywords in Microsoft SQL Server. Therefore, in order to use them as object names in the query, you must quote these identifiers. To quote them, you can use the Quote identifier quick-fix. After the quick-fix is applied: 'CREATE TABLE [select] ([identity] INT IDENTITY NOT NULL, [order] INT NOT NULL);'", - "markdown": "Reports situations when you use SQL reserved keywords as identifier names in your query.\n\nExample (Microsoft SQL Server):\n\n CREATE TABLE select (identity INT IDENTITY NOT NULL, order INT NOT NULL);\n\nWe use `select`, `identity`, and `order` as table and column names.\nBut they are also reserved keywords in Microsoft SQL Server.\nTherefore, in order to use them as object names in the query, you must quote these identifiers. To quote them, you can use the\n**Quote identifier** quick-fix.\n\nAfter the quick-fix is applied:\n\n CREATE TABLE [select] ([identity] INT IDENTITY NOT NULL, [order] INT NOT NULL);\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SqlIdentifier", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "SQL", - "index": 25, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.css", - "version": "243.24609", - "rules": [ - { - "id": "CssInvalidFunction", - "shortDescription": { - "text": "Invalid function" - }, - "fullDescription": { - "text": "Reports an unknown CSS function or an incorrect function parameter.", - "markdown": "Reports an unknown [CSS function](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Functions) or an incorrect function parameter." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidFunction", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssConvertColorToRgbInspection", - "shortDescription": { - "text": "Color could be replaced with rgb()" - }, - "fullDescription": { - "text": "Reports an 'hsl()' or 'hwb()' color function or a hexadecimal color notation. Suggests replacing such color value with an equivalent 'rgb()' or 'rgba()' color function. Example: '#0c0fff' After the quick-fix is applied: 'rgb(12, 15, 255)'.", - "markdown": "Reports an `hsl()` or `hwb()` color function or a hexadecimal color notation.\n\nSuggests replacing such color value with an equivalent `rgb()` or `rgba()` color function.\n\n**Example:**\n\n #0c0fff\n\nAfter the quick-fix is applied:\n\n rgb(12, 15, 255).\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssConvertColorToRgbInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssOverwrittenProperties", - "shortDescription": { - "text": "Overwritten property" - }, - "fullDescription": { - "text": "Reports a duplicated CSS property within a ruleset. Respects shorthand properties. Example: '.foo {\n margin-bottom: 1px;\n margin-bottom: 1px; /* duplicates margin-bottom */\n margin: 0; /* overrides margin-bottom */\n}'", - "markdown": "Reports a duplicated CSS property within a ruleset. Respects shorthand properties.\n\n**Example:**\n\n\n .foo {\n margin-bottom: 1px;\n margin-bottom: 1px; /* duplicates margin-bottom */\n margin: 0; /* overrides margin-bottom */\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssOverwrittenProperties", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidNestedSelector", - "shortDescription": { - "text": "Invalid nested selector" - }, - "fullDescription": { - "text": "Reports a nested selector starting with an identifier or a functional notation.", - "markdown": "Reports a nested selector starting with an identifier or a functional notation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssInvalidNestedSelector", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidHtmlTagReference", - "shortDescription": { - "text": "Invalid type selector" - }, - "fullDescription": { - "text": "Reports a CSS type selector that matches an unknown HTML element.", - "markdown": "Reports a CSS [type selector](https://developer.mozilla.org/en-US/docs/Web/CSS/Type_selectors) that matches an unknown HTML element." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssInvalidHtmlTagReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssMissingSemicolon", - "shortDescription": { - "text": "Missing semicolon" - }, - "fullDescription": { - "text": "Reports a missing semicolon at the end of a declaration.", - "markdown": "Reports a missing semicolon at the end of a declaration." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssMissingSemicolon", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Code style issues", - "index": 114, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidCustomPropertyAtRuleName", - "shortDescription": { - "text": "Invalid @property name" - }, - "fullDescription": { - "text": "Reports an invalid custom property name. Custom property name should be prefixed with two dashes. Example: '@property invalid-property-name {\n ...\n}\n\n@property --valid-property-name {\n ...\n}'", - "markdown": "Reports an invalid custom property name. Custom property name should be prefixed with two dashes.\n\n**Example:**\n\n\n @property invalid-property-name {\n ...\n }\n\n @property --valid-property-name {\n ...\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidCustomPropertyAtRuleName", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssUnknownTarget", - "shortDescription": { - "text": "Unresolved file reference" - }, - "fullDescription": { - "text": "Reports an unresolved file reference, for example, an incorrect path in an '@import' statement.", - "markdown": "Reports an unresolved file reference, for example, an incorrect path in an `@import` statement." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssUnknownTarget", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidCharsetRule", - "shortDescription": { - "text": "Misplaced or incorrect @charset" - }, - "fullDescription": { - "text": "Reports a misplaced '@charset' at-rule or an incorrect charset value.", - "markdown": "Reports a misplaced `@charset` at-rule or an incorrect charset value." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssInvalidCharsetRule", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidPseudoSelector", - "shortDescription": { - "text": "Invalid pseudo-selector" - }, - "fullDescription": { - "text": "Reports an incorrect CSS pseudo-class pseudo-element.", - "markdown": "Reports an incorrect CSS [pseudo-class](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes) [pseudo-element](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidPseudoSelector", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidCustomPropertyAtRuleDeclaration", - "shortDescription": { - "text": "Invalid @property declaration" - }, - "fullDescription": { - "text": "Reports a missing required syntax, inherits, or initial-value property in a declaration of a custom property.", - "markdown": "Reports a missing required [syntax](https://developer.mozilla.org/en-US/docs/web/css/@property/syntax), [inherits](https://developer.mozilla.org/en-US/docs/web/css/@property/inherits), or [initial-value](https://developer.mozilla.org/en-US/docs/web/css/@property/initial-value) property in a declaration of a custom property." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidCustomPropertyAtRuleDeclaration", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssBrowserCompatibilityForProperties", - "shortDescription": { - "text": "Property is incompatible with selected browsers" - }, - "fullDescription": { - "text": "Reports a CSS property that is not supported by the specified browsers. Based on the MDN Compatibility Data.", - "markdown": "Reports a CSS property that is not supported by the specified browsers. Based on the [MDN Compatibility Data](https://github.com/mdn/browser-compat-data)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssBrowserCompatibilityForProperties", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidMediaFeature", - "shortDescription": { - "text": "Invalid media feature" - }, - "fullDescription": { - "text": "Reports an unknown CSS media feature or an incorrect media feature value.", - "markdown": "Reports an unknown [CSS media feature](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries) or an incorrect media feature value." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidMediaFeature", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssUnresolvedCustomProperty", - "shortDescription": { - "text": "Unresolved custom property" - }, - "fullDescription": { - "text": "Reports an unresolved reference to a custom property among the arguments of the 'var()' function.", - "markdown": "Reports an unresolved reference to a [custom property](https://developer.mozilla.org/en-US/docs/Web/CSS/--*) among the arguments of the `var()` function." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssUnresolvedCustomProperty", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssUnknownProperty", - "shortDescription": { - "text": "Unknown property" - }, - "fullDescription": { - "text": "Reports an unknown CSS property or a property used in a wrong context. Add the unknown property to the 'Custom CSS properties' list to skip validation.", - "markdown": "Reports an unknown CSS property or a property used in a wrong context.\n\nAdd the unknown property to the 'Custom CSS properties' list to skip validation." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssUnknownProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssMissingComma", - "shortDescription": { - "text": "Missing comma in selector list" - }, - "fullDescription": { - "text": "Reports a multi-line selector. Most likely this means that several single-line selectors are actually intended but a comma is missing at the end of one or several lines. Example: 'input /* comma has probably been forgotten */\n.button {\n margin: 1px;\n}'", - "markdown": "Reports a multi-line selector. Most likely this means that several single-line selectors are actually intended but a comma is missing at the end of one or several lines.\n\n**Example:**\n\n\n input /* comma has probably been forgotten */\n .button {\n margin: 1px;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssMissingComma", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Probable bugs", - "index": 146, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssUnusedSymbol", - "shortDescription": { - "text": "Unused selector" - }, - "fullDescription": { - "text": "Reports a CSS class or an element IDs that appears in selectors but is not used in HTML. Note that complete inspection results are available only when running it via Code | Inspect Code or Code | Analyze Code | Run Inspection by Name. Due to performance reasons, style sheet files are not inspected on the fly.", - "markdown": "Reports a CSS class or an element IDs that appears in selectors but is not used in HTML.\n\n\nNote that complete inspection results are available only when running it via **Code \\| Inspect Code** or\n**Code \\| Analyze Code \\| Run Inspection by Name**.\nDue to performance reasons, style sheet files are not inspected on the fly." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssUnusedSymbol", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssDeprecatedValue", - "shortDescription": { - "text": "Deprecated value" - }, - "fullDescription": { - "text": "Reports a deprecated CSS value. Suggests replacing the deprecated value with its valid equivalent.", - "markdown": "Reports a deprecated CSS value. Suggests replacing the deprecated value with its valid equivalent." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssDeprecatedValue", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssNonIntegerLengthInPixels", - "shortDescription": { - "text": "Non-integer length in pixels" - }, - "fullDescription": { - "text": "Reports a non-integer length in pixels. Example: 'width: 3.14px'", - "markdown": "Reports a non-integer length in pixels.\n\n**Example:**\n\n width: 3.14px\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CssNonIntegerLengthInPixels", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Probable bugs", - "index": 146, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssConvertColorToHexInspection", - "shortDescription": { - "text": "Color could be replaced with #-hex" - }, - "fullDescription": { - "text": "Reports an 'rgb()', 'hsl()', or other color function. Suggests replacing a color function with an equivalent hexadecimal notation. Example: 'rgb(12, 15, 255)' After the quick-fix is applied: '#0c0fff'.", - "markdown": "Reports an `rgb()`, `hsl()`, or other color function.\n\nSuggests replacing a color function with an equivalent hexadecimal notation.\n\n**Example:**\n\n rgb(12, 15, 255)\n\nAfter the quick-fix is applied:\n\n #0c0fff.\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssConvertColorToHexInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidAtRule", - "shortDescription": { - "text": "Unknown at-rule" - }, - "fullDescription": { - "text": "Reports an unknown CSS at-rule.", - "markdown": "Reports an unknown [CSS at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidAtRule", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssNegativeValue", - "shortDescription": { - "text": "Negative property value" - }, - "fullDescription": { - "text": "Reports a negative value of a CSS property that is not expected to be less than zero, for example, object width or height.", - "markdown": "Reports a negative value of a CSS property that is not expected to be less than zero, for example, object width or height." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssNegativeValue", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssNoGenericFontName", - "shortDescription": { - "text": "Missing generic font family name" - }, - "fullDescription": { - "text": "Verifies that the 'font-family' property contains a generic font family name as a fallback alternative. Generic font family names are: 'serif', 'sans-serif', 'cursive', 'fantasy', and 'monospace'.", - "markdown": "Verifies that the [font-family](https://developer.mozilla.org/en-US/docs/Web/CSS/font-family) property contains a generic font family name as a fallback alternative.\n\n\nGeneric font family names are: `serif`, `sans-serif`, `cursive`, `fantasy`,\nand `monospace`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssNoGenericFontName", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Probable bugs", - "index": 146, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssRedundantUnit", - "shortDescription": { - "text": "Redundant measure unit" - }, - "fullDescription": { - "text": "Reports a measure unit of a zero value where units are not required by the specification. Example: 'width: 0px'", - "markdown": "Reports a measure unit of a zero value where units are not required by the specification.\n\n**Example:**\n\n width: 0px\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssRedundantUnit", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Code style issues", - "index": 114, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidPropertyValue", - "shortDescription": { - "text": "Invalid property value" - }, - "fullDescription": { - "text": "Reports an incorrect CSS property value.", - "markdown": "Reports an incorrect CSS property value." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssInvalidPropertyValue", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssReplaceWithShorthandUnsafely", - "shortDescription": { - "text": "Properties may probably be replaced with a shorthand" - }, - "fullDescription": { - "text": "Reports a set of longhand CSS properties and suggests replacing an incomplete set of longhand CSS properties with a shorthand form, which is however not 100% equivalent in this case. For example, 2 properties: 'outline-color' and 'outline-style' may be replaced with a single 'outline'. Such replacement is not 100% equivalent because shorthands reset all omitted sub-values to their initial states. In this example, switching to the 'outline' shorthand means that 'outline-width' is also set to its initial value, which is 'medium'. This inspection doesn't handle full sets of longhand properties (when switching to shorthand is 100% safe). For such cases see the 'Properties may be safely replaced with a shorthand' inspection instead.", - "markdown": "Reports a set of longhand CSS properties and suggests replacing an incomplete set of longhand CSS properties with a shorthand form, which is however not 100% equivalent in this case.\n\n\nFor example, 2 properties: `outline-color` and `outline-style` may be replaced with a single `outline`.\nSuch replacement is not 100% equivalent because shorthands reset all omitted sub-values to their initial states.\nIn this example, switching to the `outline` shorthand means that `outline-width` is also set to its initial value,\nwhich is `medium`.\n\n\nThis inspection doesn't handle full sets of longhand properties (when switching to shorthand is 100% safe).\nFor such cases see the 'Properties may be safely replaced with a shorthand' inspection instead." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CssReplaceWithShorthandUnsafely", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssUnknownUnit", - "shortDescription": { - "text": "Unknown unit" - }, - "fullDescription": { - "text": "Reports an unknown unit.", - "markdown": "Reports an unknown unit." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssUnknownUnit", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssInvalidImport", - "shortDescription": { - "text": "Misplaced @import" - }, - "fullDescription": { - "text": "Reports a misplaced '@import' statement. According to the specification, '@import' rules must precede all other types of rules, except '@charset' rules.", - "markdown": "Reports a misplaced `@import` statement.\n\n\nAccording to the [specification](https://developer.mozilla.org/en-US/docs/Web/CSS/@import),\n`@import` rules must precede all other types of rules, except `@charset` rules." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CssInvalidImport", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssUnresolvedClassInComposesRule", - "shortDescription": { - "text": "Unresolved class in 'composes' rule" - }, - "fullDescription": { - "text": "Reports a CSS class reference in the 'composes' rule that cannot be resolved to any valid target. Example: '.className {/* ... */}\n\n .otherClassName {\n composes: className;\n }'", - "markdown": "Reports a CSS class reference in the ['composes'](https://github.com/css-modules/css-modules#composition) rule that cannot be resolved to any valid target.\n\n**Example:**\n\n\n .className {/* ... */}\n\n .otherClassName {\n composes: className;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CssUnresolvedClassInComposesRule", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Invalid elements", - "index": 30, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CssReplaceWithShorthandSafely", - "shortDescription": { - "text": "Properties may be safely replaced with a shorthand" - }, - "fullDescription": { - "text": "Reports a set of longhand properties. Suggests replacing a complete set of longhand CSS properties with an equivalent shorthand form. For example, 4 properties: 'padding-top', 'padding-right', 'padding-bottom', and 'padding-left' can be safely replaced with a single 'padding' property. Note that this inspection doesn't show up if the set of longhand properties is incomplete (e.g. only 3 'padding-xxx' properties in a ruleset) because switching to a shorthand may change the result. For such cases consider the 'Properties may probably be replaced with a shorthand' inspection.", - "markdown": "Reports a set of longhand properties. Suggests replacing a complete set of longhand CSS properties with an equivalent shorthand form.\n\n\nFor example, 4 properties: `padding-top`, `padding-right`, `padding-bottom`, and\n`padding-left`\ncan be safely replaced with a single `padding` property.\n\n\nNote that this inspection doesn't show up if the set of longhand properties is incomplete\n(e.g. only 3 `padding-xxx` properties in a ruleset)\nbecause switching to a shorthand may change the result.\nFor such cases consider the 'Properties may probably be replaced with a shorthand'\ninspection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "CssReplaceWithShorthandSafely", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS", - "index": 29, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.kubernetes", - "version": "243.24609", - "rules": [ - { - "id": "KubernetesDeprecatedResources", - "shortDescription": { - "text": "Deprecated Kubernetes resources" - }, - "fullDescription": { - "text": "Report deprecated Kubernetes resource types.", - "markdown": "Report deprecated Kubernetes resource types. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "KubernetesDeprecatedResources", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesNonEditableResources", - "shortDescription": { - "text": "Non-editable Kubernetes resources" - }, - "fullDescription": { - "text": "Reports non-editable (read-only) Kubernetes resource types.", - "markdown": "Reports non-editable (read-only) Kubernetes resource types. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "KubernetesNonEditableResources", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesDeprecatedKeys", - "shortDescription": { - "text": "Deprecated Kubernetes resource properties" - }, - "fullDescription": { - "text": "Reports deprecated keys in Kubernetes resource files.", - "markdown": "Reports deprecated keys in Kubernetes resource files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "KubernetesDeprecatedKeys", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesNonEditableKeys", - "shortDescription": { - "text": "Non-editable Kubernetes resource properties" - }, - "fullDescription": { - "text": "Reports non-editable (read-only) keys in Kubernetes resource files.", - "markdown": "Reports non-editable (read-only) keys in Kubernetes resource files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "KubernetesNonEditableKeys", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HelmChartMissingKeys", - "shortDescription": { - "text": "Missing Chart.yaml keys" - }, - "fullDescription": { - "text": "Reports missing required keys in Chart.yaml.", - "markdown": "Reports missing required keys in Chart.yaml. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "HelmChartMissingKeys", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesUnknownValues", - "shortDescription": { - "text": "Unknown Kubernetes YAML values" - }, - "fullDescription": { - "text": "Reports invalid values in Kubernetes resource files.", - "markdown": "Reports invalid values in Kubernetes resource files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "KubernetesUnknownValues", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesUnknownKeys", - "shortDescription": { - "text": "Unknown Kubernetes YAML keys" - }, - "fullDescription": { - "text": "Reports unrecognized keys in Kubernetes resource files.", - "markdown": "Reports unrecognized keys in Kubernetes resource files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "KubernetesUnknownKeys", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HelmChartUnknownValues", - "shortDescription": { - "text": "Invalid Chart.yaml values" - }, - "fullDescription": { - "text": "Reports unrecognized values in Chart.yaml and requirements.yaml.", - "markdown": "Reports unrecognized values in Chart.yaml and requirements.yaml. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "HelmChartUnknownValues", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesMissingKeys", - "shortDescription": { - "text": "Missing Kubernetes YAML keys" - }, - "fullDescription": { - "text": "Reports missing required keys in Kubernetes resource files.", - "markdown": "Reports missing required keys in Kubernetes resource files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "KubernetesMissingKeys", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesUnknownResourcesInspection", - "shortDescription": { - "text": "Unknown Kubernetes resources" - }, - "fullDescription": { - "text": "Reports unrecognized Kubernetes resource types.", - "markdown": "Reports unrecognized Kubernetes resource types. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "KubernetesUnknownResourcesInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HelmChartUnknownKeys", - "shortDescription": { - "text": "Unknown Chart.yaml keys" - }, - "fullDescription": { - "text": "Reports unrecognized keys in Chart.yaml.", - "markdown": "Reports unrecognized keys in Chart.yaml. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HelmChartUnknownKeys", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "KubernetesDuplicatedEnvVars", - "shortDescription": { - "text": "Duplicated EnvVar definitions" - }, - "fullDescription": { - "text": "Reports duplicate EnvVars in Kubernetes container definitions.", - "markdown": "Reports duplicate EnvVars in Kubernetes container definitions. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "KubernetesDuplicatedEnvVars", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Kubernetes", - "index": 33, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.properties", - "version": "243.24609", - "rules": [ - { - "id": "UseEllipsisInPropertyInspection", - "shortDescription": { - "text": "Three dot characters instead of the ellipsis" - }, - "fullDescription": { - "text": "Reports three \"dot\" characters which are used instead of the ellipsis character for UTF-8 properties files.", - "markdown": "Reports three \"dot\" characters which are used instead of the ellipsis character for UTF-8 properties files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UseEllipsisInPropertyInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Properties files", - "index": 38, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AlphaUnsortedPropertiesFile", - "shortDescription": { - "text": "Properties file or resource bundle is alphabetically unsorted" - }, - "fullDescription": { - "text": "Reports alphabetically unsorted resource bundles or .properties files.", - "markdown": "Reports alphabetically unsorted resource bundles or .properties files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AlphaUnsortedPropertiesFile", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Properties files", - "index": 38, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UnusedProperty", - "shortDescription": { - "text": "Unused property" - }, - "fullDescription": { - "text": "Reports properties that are not referenced outside of the .properties file they are contained in.", - "markdown": "Reports properties that are not referenced outside of the .properties file they are contained in." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnusedProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Properties files", - "index": 38, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "TrailingSpacesInProperty", - "shortDescription": { - "text": "Trailing spaces in property" - }, - "fullDescription": { - "text": "Reports properties whose keys or values end with a whitespace.", - "markdown": "Reports properties whose keys or values end with a whitespace." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TrailingSpacesInProperty", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Properties files", - "index": 38, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "WrongPropertyKeyValueDelimiter", - "shortDescription": { - "text": "Property key/value delimiter doesn't match code style settings" - }, - "fullDescription": { - "text": "Reports properties in which key or value delimiters do not match code style settings.", - "markdown": "Reports properties in which key or value delimiters do not match code style settings." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "WrongPropertyKeyValueDelimiter", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Properties files", - "index": 38, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DuplicatePropertyInspection", - "shortDescription": { - "text": "Duplicate property" - }, - "fullDescription": { - "text": "Reports duplicate property keys with different values, duplicate keys, or duplicate property values. Example: 'property1=value;\nproperty2=value;' The Options list allows selecting the area in which the inspection should search for duplicates.", - "markdown": "Reports duplicate property keys with different values, duplicate keys, or duplicate property values.\n\nExample:\n\n\n property1=value;\n property2=value;\n\nThe **Options** list allows selecting the area in which the inspection should search for duplicates." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DuplicatePropertyInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Properties files", - "index": 38, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "XPathView", - "version": "243.24609", - "rules": [ - { - "id": "XsltUnusedDeclaration", - "shortDescription": { - "text": "Unused variable or parameter" - }, - "fullDescription": { - "text": "Reports local variables and parameters that are never used.", - "markdown": "Reports local variables and parameters that are never used." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XsltUnusedDeclaration", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XSLT", - "index": 43, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "RedundantTypeConversion", - "shortDescription": { - "text": "Redundant type conversion" - }, - "fullDescription": { - "text": "Reports unnecessary type conversions. Type conversions are unnecessary when the argument type of a 'string()', 'number()', or 'boolean()' function is already the same as the function's return type or if the expected expression type is 'any'. Suggests removing the unnecessary conversion.", - "markdown": "Reports unnecessary type conversions. Type conversions are unnecessary when the argument type of a `string()`, `number()`, or `boolean()` function is already the same as the function's return type or if the expected expression type is `any`. Suggests removing the unnecessary conversion." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RedundantTypeConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "XPath", - "index": 85, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckNodeTest", - "shortDescription": { - "text": "Unknown element or attribute name" - }, - "fullDescription": { - "text": "Reports names of elements or attributes that are used in an XPath-expression but are missing in the associated XML files and are not defined in the referenced schemas. Such names are often the result of typos and would otherwise probably only be discovered at runtime. Example: '' If the 'h' is bound to the XHTML namespace, the inspection will report this part of the 'match' expression as an unknown element name because the correct name of the element is \"textarea\".", - "markdown": "Reports names of elements or attributes that are used in an XPath-expression but are missing in the associated XML files and are not defined in the referenced schemas. Such names are often the result of typos and would otherwise probably only be discovered at runtime.\n\n**Example:**\n\n\n \n\n\nIf the `h` is bound to the XHTML namespace, the inspection will report this part of the `match` expression as an\nunknown element name because the correct name of the element is \"textarea\"." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CheckNodeTest", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XPath", - "index": 85, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XsltDeclarations", - "shortDescription": { - "text": "Incorrect declaration" - }, - "fullDescription": { - "text": "Reports duplicate declarations and illegal identifiers in XSLT variables, parameters, and named templates:", - "markdown": "Reports duplicate declarations and illegal identifiers in XSLT variables, parameters, and named templates:" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XsltDeclarations", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XSLT", - "index": 43, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HardwiredNamespacePrefix", - "shortDescription": { - "text": "Hardcoded namespace prefix" - }, - "fullDescription": { - "text": "Reports comparisons of the 'name()' function with a string that contains a colon (':'). Such usages usually indicate a hardcoded namespace prefix in the comparison. As a result, the code will break when run against XML that uses another prefix for the same namespace. Example: '...'", - "markdown": "Reports comparisons of the `name()` function with a string that contains a colon (`:`). Such usages usually indicate a hardcoded namespace prefix in the comparison. As a result, the code will break when run against XML that uses another prefix for the same namespace.\n\n**Example:**\n\n\n ...\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HardwiredNamespacePrefix", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XPath", - "index": 85, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ImplicitTypeConversion", - "shortDescription": { - "text": "Implicit type conversion" - }, - "fullDescription": { - "text": "Reports implicit conversions between the predefined XPath-types 'STRING', 'NUMBER', 'BOOLEAN', and 'NODESET'. Helps to write XSLT scripts that are more expressive about types and prevents subtle bugs: Example: '' is not the same as '' The first test checks whether the element \"foo\" exists ('count(foo) > 0)'; the latter one however is only true if the element actually contains any text ('string-length(foo) > 0'). Suggests making the type conversion more explicit. Use the following options to configure the inspection: Enable or disable implicit conversions between certain types Always report explicit conversions that do not result in the actually expected type, for example, '' Ignore conversion from 'NODESET' to 'BOOLEAN' by using the 'string()' function as a shortcut for writing 'string-length() > 0'.", - "markdown": "Reports implicit conversions between the predefined XPath-types `STRING`, `NUMBER`, `BOOLEAN`, and `NODESET`. Helps to write XSLT scripts that are more expressive about types and prevents subtle bugs:\n\n**Example:**\n\n\n \n\nis not the same as\n\n\n \n\n\nThe first test checks whether the element \"foo\" exists (`count(foo) > 0)`; the latter one however is only\ntrue if the element actually contains any text (`string-length(foo) > 0`). Suggests making\nthe type conversion more explicit.\n\n\nUse the following options to configure the inspection:\n\n* Enable or disable implicit conversions between certain types\n* Always report explicit conversions that do not result in the actually expected type, for example, ``\n* Ignore conversion from `NODESET` to `BOOLEAN` by using the `string()` function as a shortcut for writing `string-length() > 0`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "ImplicitTypeConversion", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XPath", - "index": 85, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IndexZeroUsage", - "shortDescription": { - "text": "XPath predicate with index 0" - }, - "fullDescription": { - "text": "Reports usages of '0' in a predicate index or in a comparison with the function 'position()'. Such usage is almost always a bug because in XPath, the index starts at '1', not at '0'. Example: '//someelement[position() = 0]' or '//something[0]'", - "markdown": "Reports usages of `0` in a predicate index or in a comparison with the function `position()`. Such usage is almost always a bug because in XPath, the index starts at `1`, *not* at `0`.\n\n**Example:**\n\n\n //someelement[position() = 0] or //something[0]\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "IndexZeroUsage", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XPath", - "index": 85, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XsltTemplateInvocation", - "shortDescription": { - "text": "Incorrect template invocation" - }, - "fullDescription": { - "text": "Reports missing arguments, passing arguments that are not declared, and passing arguments for parameters more than once in named XSLT template invocations. Parameters declared with a default value are optional and will not be reported as missing.", - "markdown": "Reports missing arguments, passing arguments that are not declared, and passing arguments for parameters more than once in named XSLT template invocations.\n\n\nParameters declared with a default value are optional and will not be reported as missing." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "XsltTemplateInvocation", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "XSLT", - "index": 43, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "XsltVariableShadowing", - "shortDescription": { - "text": "Shadowed variable" - }, - "fullDescription": { - "text": "Reports shadowed XSLT variables.", - "markdown": "Reports shadowed XSLT variables." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "XsltVariableShadowing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "XSLT", - "index": 43, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "Docker", - "version": "243.24609", - "rules": [ - { - "id": "DockerFileRunCommandMissingContinuation", - "shortDescription": { - "text": "Missing continuation character for ''RUN'' command" - }, - "fullDescription": { - "text": "Reports missing continuation characters in 'RUN' command. In the shell form of 'RUN' command you should use a '\\' (backslash) to continue a single 'RUN' instruction onto the next line. Otherwise, Docker build will fail. Examples: '# the command below will fail\n RUN /bin/bash -c 'source $HOME/.bashrc;\n echo $HOME'' After the quick-fix is applied: 'RUN /bin/bash -c 'source $HOME/.bashrc; \\\n echo $HOME''", - "markdown": "Reports missing continuation characters in `RUN` command.\n\n\nIn the *shell* form of `RUN` command you should use a '\\\\' (backslash)\nto continue a single `RUN` instruction onto the next line.\nOtherwise, Docker build will fail.\n\n**Examples:**\n\n\n # the command below will fail\n RUN /bin/bash -c 'source $HOME/.bashrc;\n echo $HOME'\n\nAfter the quick-fix is applied:\n\n\n RUN /bin/bash -c 'source $HOME/.bashrc; \\\n echo $HOME'\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "DockerFileRunCommandMissingContinuation", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dockerfile", - "index": 44, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DockerJsonFormStringLiterals", - "shortDescription": { - "text": "A single quoted string in JSON array format" - }, - "fullDescription": { - "text": "Reports a single quoted string in JSON array format. JSON array form, must use double-quotes (\") around words not single-quotes ('). Otherwise, Docker build will fail. Examples: '# all the commands below will fail\n RUN ['/bin/bash', '-c', 'echo hello']\n ADD ['binaryA.jar', 'binary2.jar', 'destination/']\n COPY ['binaryA.jar', 'binary2.jar', 'destination/']' After the quick-fix is applied: 'RUN [\"/bin/bash\", \"-c\", \"echo hello\"]\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n COPY [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]'", - "markdown": "Reports a single quoted string in JSON array format.\n\n\nJSON array form, must use double-quotes (\") around words not single-quotes ('). Otherwise, Docker build will fail.\n\n**Examples:**\n\n\n # all the commands below will fail\n RUN ['/bin/bash', '-c', 'echo hello']\n ADD ['binaryA.jar', 'binary2.jar', 'destination/']\n COPY ['binaryA.jar', 'binary2.jar', 'destination/']\n\nAfter the quick-fix is applied:\n\n\n RUN [\"/bin/bash\", \"-c\", \"echo hello\"]\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n COPY [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DockerJsonFormStringLiterals", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dockerfile", - "index": 44, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DockerFileArgumentCount", - "shortDescription": { - "text": "Wrong number of arguments" - }, - "fullDescription": { - "text": "Reports invalid number of arguments for the Dockerfile commands. Docker build will fail after reaching the instruction with an invalid number of arguments.", - "markdown": "Reports invalid number of arguments for the Dockerfile commands.\n\n\nDocker build will fail after reaching the instruction with an invalid number of arguments." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "DockerFileArgumentCount", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dockerfile", - "index": 44, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ComposeUnknownValues", - "shortDescription": { - "text": "Unknown docker-compose YAML values" - }, - "fullDescription": { - "text": "Reports unrecognized values in Docker Compose files.", - "markdown": "Reports unrecognized values in Docker Compose files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "ComposeUnknownValues", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Docker-compose", - "index": 135, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DockerFileAddOrCopyPaths", - "shortDescription": { - "text": "Invalid destination for ''ADD''/''COPY'' commands" - }, - "fullDescription": { - "text": "Reports invalid destination directories in 'ADD' and 'COPY' commands. According to the Dockerfile specification, if multiple sources are specified, then the destination must be a directory, and it must end with a slash '/'. Otherwise, Docker build will fail. Examples: '# all the commands below will fail\n ADD textA.txt textB.txt relativeDir\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination\"]\n COPY text3.txt text4.txt /absolute/path' After the quick-fix is applied: 'ADD textA.txt textB.txt relativeDir/\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n COPY text3.txt text4.txt /absolute/path/'", - "markdown": "Reports invalid destination directories in `ADD` and `COPY` commands.\n\n\nAccording to the [Dockerfile specification](https://docs.docker.com/engine/reference/builder/#add),\nif multiple sources are specified, then the destination must be a directory, and it must end with a slash '/'.\nOtherwise, Docker build will fail.\n\n**Examples:**\n\n\n # all the commands below will fail\n ADD textA.txt textB.txt relativeDir\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination\"]\n COPY text3.txt text4.txt /absolute/path\n\nAfter the quick-fix is applied:\n\n\n ADD textA.txt textB.txt relativeDir/\n ADD [\"binaryA.jar\", \"binary2.jar\", \"destination/\"]\n COPY text3.txt text4.txt /absolute/path/\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DockerFileAddOrCopyPaths", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dockerfile", - "index": 44, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ComposeMissingKeys", - "shortDescription": { - "text": "Missing docker-compose YAML keys" - }, - "fullDescription": { - "text": "Reports missing required keys in Docker Compose files.", - "markdown": "Reports missing required keys in Docker Compose files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "ComposeMissingKeys", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Docker-compose", - "index": 135, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ComposeUnquotedPorts", - "shortDescription": { - "text": "Unquoted port mappings" - }, - "fullDescription": { - "text": "Reports unquoted port mappings in Docker Compose files. According to the Compose file specification, mapping ports in the 'HOST:CONTAINER' format may lead to erroneous results when using a container port lower than 60, because YAML parses numbers in the format 'xx:yy' as a base-60 value. For this reason, we recommend always explicitly specifying the port mappings as strings. Examples: 'ports:\n - 3000\n - 3000-3005\n - 22:22\n - 8080:8080' After the quick-fix is applied: 'ports:\n - \"3000\"\n - \"3000-3005\"\n - \"22:22\"\n - \"8080:8080\"'", - "markdown": "Reports unquoted port mappings in Docker Compose files.\n\n\nAccording to the [Compose file specification](https://docs.docker.com/compose/compose-file/compose-file-v3/#short-syntax-1),\nmapping ports in the `HOST:CONTAINER` format may lead to erroneous results when using a container port lower than 60,\nbecause YAML parses numbers in the format `xx:yy` as a base-60 value.\nFor this reason, we recommend always explicitly specifying the port mappings as strings.\n\n**Examples:**\n\n\n ports:\n - 3000\n - 3000-3005\n - 22:22\n - 8080:8080\n\nAfter the quick-fix is applied:\n\n\n ports:\n - \"3000\"\n - \"3000-3005\"\n - \"22:22\"\n - \"8080:8080\"\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "ComposeUnquotedPorts", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Docker-compose", - "index": 135, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "ComposeUnknownKeys", - "shortDescription": { - "text": "Unknown docker-compose YAML keys" - }, - "fullDescription": { - "text": "Reports unrecognized keys in Docker Compose files.", - "markdown": "Reports unrecognized keys in Docker Compose files. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "ComposeUnknownKeys", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Docker-compose", - "index": 135, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DockerFileAssignments", - "shortDescription": { - "text": "Invalid spaces in ''key=value'' pair" - }, - "fullDescription": { - "text": "Reports incorrect spacing for key-value pairs in 'ARG', 'ENV', and 'LABEL' commands. While it is not explicitly specified in the Dockerfile specification, some combinations of spacing for key-value pairs are not allowed. Docker build will fail after reaching the problem instruction. Examples: The 'ARG' command does not allow any spaces around '=' 'ENV' and 'LABEL' do not allow spaces after '=' '# all the commands below will fail\n ARG answer = 42\n ARG version= \"1.0.0\"\n LABEL \"maintained.by\"= someone@gmail.com\n ENV JAVA_HOME= \"/docker-java-home\"' After the quick-fix is applied: 'ARG answer=2\n ARG version=\"1.0.0\"\n LABEL \"maintained.by\"=someone@gmail.com\n ENV JAVA_HOME=\"/docker-java-home\"'", - "markdown": "Reports incorrect spacing for key-value pairs in `ARG`, `ENV`, and `LABEL` commands.\n\n\nWhile it is not explicitly specified in the [Dockerfile specification](https://docs.docker.com/engine/reference/builder/#arg),\nsome combinations of spacing for key-value pairs are not allowed.\nDocker build will fail after reaching the problem instruction.\n\n**Examples:**\n\n* The `ARG` command does not allow any spaces around '='\n* `ENV` and `LABEL` do not allow spaces after '='\n\n\n # all the commands below will fail\n ARG answer = 42\n ARG version= \"1.0.0\"\n LABEL \"maintained.by\"= someone@gmail.com\n ENV JAVA_HOME= \"/docker-java-home\"\n\nAfter the quick-fix is applied:\n\n\n ARG answer=2\n ARG version=\"1.0.0\"\n LABEL \"maintained.by\"=someone@gmail.com\n ENV JAVA_HOME=\"/docker-java-home\"\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "DockerFileAssignments", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dockerfile", - "index": 44, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.intellij.qodana", - "version": "243.24609", - "rules": [ - { - "id": "JsCoverageInspection", - "shortDescription": { - "text": "Check JavaScript and TypeScript source code coverage" - }, - "fullDescription": { - "text": "Reports methods, classes and files whose coverage is below a certain threshold.", - "markdown": "Reports methods, classes and files whose coverage is below a certain threshold." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsCoverageInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Code Coverage", - "index": 53, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CyclomaticComplexityInspection", - "shortDescription": { - "text": "Code metrics" - }, - "fullDescription": { - "text": "Calculates cyclomatic complexity.", - "markdown": "Calculates cyclomatic complexity." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CyclomaticComplexityInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Qodana", - "index": 174, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "AngularJS", - "version": "243.24609", - "rules": [ - { - "id": "AngularInvalidImportedOrDeclaredSymbol", - "shortDescription": { - "text": "Invalid imported or declared symbol" - }, - "fullDescription": { - "text": "Reports any symbol that is declared, imported or exported by an Angular module or standalone component that is not a module, component, directive, or pipe or can’t be used in the context of the property.", - "markdown": "Reports any symbol that is declared, imported or exported by an Angular module or standalone component that is not a module, component, directive, or pipe or can't be used in the context of the property." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularInvalidImportedOrDeclaredSymbol", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularRecursiveModuleImportExport", - "shortDescription": { - "text": "Recursive import or export of an Angular module or a standalone component" - }, - "fullDescription": { - "text": "Reports a cyclic dependency between Angular modules or standalone components.", - "markdown": "Reports a cyclic dependency between Angular modules or standalone components." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularRecursiveModuleImportExport", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularNgOptimizedImage", - "shortDescription": { - "text": "Issues with ngSrc usage in img tags" - }, - "fullDescription": { - "text": "Reports issues related to usage of 'ngSrc' (NgOptimizedDirective) on 'img' tags. Following issues are reported: 'img' tags, which use 'src' instead of 'ngSrc' lack of 'width' and 'height', or 'fill' attributes when 'ngSrc' is used 'width' or 'height', and 'fill' attributes being present on the same element when 'ngSrc' is used", - "markdown": "Reports issues related to usage of `ngSrc` ([NgOptimizedDirective](https://angular.io/guide/image-directive)) on `img` tags.\n\n\nFollowing issues are reported:\n\n* `img` tags, which use `src` instead of `ngSrc`\n* lack of `width` and `height`, or `fill` attributes when `ngSrc` is used\n* `width` or `height`, and `fill` attributes being present on the same element when `ngSrc` is used" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "AngularNgOptimizedImage", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInvalidTemplateReferenceVariable", - "shortDescription": { - "text": "Unbound or ambiguous template reference variable" - }, - "fullDescription": { - "text": "Reports a template reference variable that is not assigned to a directive when using 'exportAs' or is assigned to multiple directives.", - "markdown": "Reports a template reference variable that is not assigned to a directive when using `exportAs` or is assigned to multiple directives." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularInvalidTemplateReferenceVariable", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularMultipleStructuralDirectives", - "shortDescription": { - "text": "Multiple structural directives on one element" - }, - "fullDescription": { - "text": "Reports multiple structural directives ('*ngIf', '*ngFor', etc.) on one element.", - "markdown": "Reports multiple structural directives (`*ngIf`, `*ngFor`, etc.) on one element." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularMultipleStructuralDirectives", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularUnsupportedSyntax", - "shortDescription": { - "text": "Unsupported Angular expression syntax" - }, - "fullDescription": { - "text": "Reports problems with Angular expression syntax, which is not supported in an older version of Angular.", - "markdown": "Reports problems with Angular expression syntax, which is not supported in an older version of Angular." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularUnsupportedSyntax", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularNonStandaloneComponentImports", - "shortDescription": { - "text": "Invalid usage of imports in non-standalone components" - }, - "fullDescription": { - "text": "Reports usages of imports property in non-standalone component decorators. Imports can be used only in standalone components.", - "markdown": "Reports usages of imports property in non-standalone component decorators. Imports can be used only in standalone components." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularNonStandaloneComponentImports", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInvalidSelector", - "shortDescription": { - "text": "Missing or invalid selector" - }, - "fullDescription": { - "text": "Reports an invalid 'selector' property of a component or directive.", - "markdown": "Reports an invalid `selector` property of a component or directive." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularInvalidSelector", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularNonEmptyNgContent", - "shortDescription": { - "text": "Content inside tag" - }, - "fullDescription": { - "text": "Reports a text or tag occurrence inside a '' tag used for content projection.", - "markdown": "Reports a text or tag occurrence inside a `` tag used for content projection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularNonEmptyNgContent", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInsecureBindingToEvent", - "shortDescription": { - "text": "Insecure binding to event" - }, - "fullDescription": { - "text": "Reports a binding to an event property or attribute, for example, '[onclick]' or '[attr.onclick]' instead of '(click)'.", - "markdown": "Reports a binding to an event property or attribute, for example, `[onclick]` or `[attr.onclick]` instead of `(click)`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AngularInsecureBindingToEvent", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularDeferBlockOnTrigger", - "shortDescription": { - "text": "Problems with @defer `on` triggers" - }, - "fullDescription": { - "text": "Reports issues with triggers in `on` parameters in `@defer` block.", - "markdown": "Reports issues with triggers in \\`on\\` parameters in \\`@defer\\` block." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularDeferBlockOnTrigger", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularMissingEventHandler", - "shortDescription": { - "text": "Missing event handler" - }, - "fullDescription": { - "text": "Reports a missing event handler statement for an event binding.", - "markdown": "Reports a missing event handler statement for an event binding." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularMissingEventHandler", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularUndefinedBinding", - "shortDescription": { - "text": "Undefined binding" - }, - "fullDescription": { - "text": "Reports an undefined property, event, or structural directive bindings on elements.", - "markdown": "Reports an undefined property, event, or structural directive bindings on elements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularUndefinedBinding", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularForBlockNonIterableVar", - "shortDescription": { - "text": "Non-iterable type in @for block" - }, - "fullDescription": { - "text": "Reports that the type of variable to iterate over does not have '[Symbol.iterator]()' method, which returns an iterator.", - "markdown": "Reports that the type of variable to iterate over does not have `[Symbol.iterator]()` method, which returns an iterator." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularForBlockNonIterableVar", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularBindingTypeMismatch", - "shortDescription": { - "text": "Invalid binding type" - }, - "fullDescription": { - "text": "Reports a mismatch between actual and expected directive binding type.", - "markdown": "Reports a mismatch between actual and expected directive binding type." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularBindingTypeMismatch", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularUndefinedTag", - "shortDescription": { - "text": "Undefined tag" - }, - "fullDescription": { - "text": "Reports a tag defined by a component or directive out of the current scope.", - "markdown": "Reports a tag defined by a component or directive out of the current scope." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularUndefinedTag", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularAmbiguousComponentTag", - "shortDescription": { - "text": "Ambiguous component tag" - }, - "fullDescription": { - "text": "Reports a component that is matched on an embedded template element '' or multiple components matched on any other element.", - "markdown": "Reports a component that is matched on an embedded template element `` or multiple components matched on any other element." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularAmbiguousComponentTag", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularUndefinedModuleExport", - "shortDescription": { - "text": "Undefined export from Angular module" - }, - "fullDescription": { - "text": "Reports an export of an undeclared or unimported component, directive, or pipes from an Angular module.", - "markdown": "Reports an export of an undeclared or unimported component, directive, or pipes from an Angular module." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularUndefinedModuleExport", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInvalidI18nAttribute", - "shortDescription": { - "text": "Invalid i18n attribute" - }, - "fullDescription": { - "text": "Reports a problem with a 'i18n-*' attribute.", - "markdown": "Reports a problem with a `i18n-*` attribute." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AngularInvalidI18nAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularIncorrectLetUsage", - "shortDescription": { - "text": "Incorrect usage of @let declaration" - }, - "fullDescription": { - "text": "Reports problems with @let declaration usages.", - "markdown": "Reports problems with @let declaration usages." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularIncorrectLetUsage", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInvalidAnimationTriggerAssignment", - "shortDescription": { - "text": "Invalid animation trigger assignment" - }, - "fullDescription": { - "text": "Reports an invalid assignment of an animation trigger. To attach an animation to an element, use '[@triggerName]=\"expression\"' or an attribute without a value '@triggerName'.", - "markdown": "Reports an invalid assignment of an animation trigger. To attach an animation to an element, use `[@triggerName]=\"expression\"` or an attribute without a value `@triggerName`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularInvalidAnimationTriggerAssignment", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularUnresolvedPipe", - "shortDescription": { - "text": "Unresolved pipe" - }, - "fullDescription": { - "text": "Reports an unresolved pipe.", - "markdown": "Reports an unresolved pipe." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularUnresolvedPipe", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularUnusedComponentImport", - "shortDescription": { - "text": "Unused import in an Angular component declaration" - }, - "fullDescription": { - "text": "Reports unused imports in Angular components.", - "markdown": "Reports unused imports in Angular components." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularUnusedComponentImport", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularIncorrectBlockUsage", - "shortDescription": { - "text": "Incorrect usage of Angular block" - }, - "fullDescription": { - "text": "Reports problems with Angular blocks.", - "markdown": "Reports problems with Angular blocks." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularIncorrectBlockUsage", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularCliAddDependency", - "shortDescription": { - "text": "Angular CLI add dependency" - }, - "fullDescription": { - "text": "Suggests using the 'ng add' command to install the dependency. 'ng add' will use the package manager to download it and invoke a schematic which can update your project with configuration changes, add additional dependencies (e.g. polyfills), or scaffold package-specific initialization code.", - "markdown": "Suggests using the `ng add` command to install the dependency.\n\n`ng add` will use the package manager to download it and invoke a schematic\nwhich can update your project with configuration changes, add additional dependencies (e.g. polyfills),\nor scaffold package-specific initialization code." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "AngularCliAddDependency", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInaccessibleSymbol", - "shortDescription": { - "text": "Inaccessible component member or directive input" - }, - "fullDescription": { - "text": "Reports access to invisible (private or protected) component member or directive input from an Angular template.", - "markdown": "Reports access to invisible (private or protected) component member or directive input from an Angular template." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularInaccessibleSymbol", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularIncorrectTemplateDefinition", - "shortDescription": { - "text": "Incorrect component template definition" - }, - "fullDescription": { - "text": "Reports a component that doesn’t have an associated template or uses both 'template' and 'templateUrl' properties.", - "markdown": "Reports a component that doesn't have an associated template or uses both `template` and `templateUrl` properties." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularIncorrectTemplateDefinition", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularMissingRequiredDirectiveInputBinding", - "shortDescription": { - "text": "Missing required directive input" - }, - "fullDescription": { - "text": "Reports a missing binding for a required directive input.", - "markdown": "Reports a missing binding for a required directive input." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularMissingRequiredDirectiveInputBinding", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularMissingOrInvalidDeclarationInModule", - "shortDescription": { - "text": "Missing or invalid component, directive or pipe declaration in a module" - }, - "fullDescription": { - "text": "Reports a non-standalone Angular component, directive, or pipe that is not declared in any module or is declared in multiple modules.", - "markdown": "Reports a non-standalone Angular component, directive, or pipe that is not declared in any module or is declared in multiple modules." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularMissingOrInvalidDeclarationInModule", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "AngularInvalidEntryComponent", - "shortDescription": { - "text": "Invalid entry component" - }, - "fullDescription": { - "text": "Reports an invalid Angular component specified in the module’s 'bootstrap' or 'entryComponents' property.", - "markdown": "Reports an invalid Angular component specified in the module's `bootstrap` or `entryComponents` property." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "AngularInvalidEntryComponent", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Angular", - "index": 59, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.swagger", - "version": "243.24609", - "rules": [ - { - "id": "SwYamlMaybeSpecificationInspection", - "shortDescription": { - "text": "Possible OpenAPI/Swagger specification candidate" - }, - "fullDescription": { - "text": "Detects YAML files that can be interpreted as a part of OpenAPI/Swagger specification. Such files do not contain explicit specification attributes, but they are referenced from primary specification files located nearby. The following example contains two files located in the same directory. First one is a plain primary specification file. Second is referenced from the first one and thus is suggested to be considered a specification too. Primary specification file 'openapi.yaml': 'openapi: 3.1.0\ncomponents:\n schemas:\n CustomSchema:\n description: Custom schema object\n properties:\n foo:\n $ref: 'common.components.yaml#/components/schemas/CommonSchema'' Specification file candidate 'common.components.yaml': 'components: # 'Mark file as OpenAPI specification' highlighting\n schemas:\n CommonSchema:\n description: Common schema object reused in several specifications'", - "markdown": "Detects YAML files that can be interpreted as a part of OpenAPI/Swagger specification.\n\n\nSuch files do not contain explicit specification attributes, but they are referenced from primary specification files located nearby.\n\n\nThe following example contains two files located in the same directory. First one is a plain primary specification file.\nSecond is referenced from the first one and thus is suggested to be considered a specification too.\n\n**Primary specification file `openapi.yaml`:**\n\n\n openapi: 3.1.0\n components:\n schemas:\n CustomSchema:\n description: Custom schema object\n properties:\n foo:\n $ref: 'common.components.yaml#/components/schemas/CommonSchema'\n\n**Specification file candidate `common.components.yaml`:**\n\n\n components: # 'Mark file as OpenAPI specification' highlighting\n schemas:\n CommonSchema:\n description: Common schema object reused in several specifications\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SwYamlMaybeSpecificationInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "OpenAPI specifications", - "index": 66, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SwJsonUnresolvedReferencesInspection", - "shortDescription": { - "text": "Unresolved reference" - }, - "fullDescription": { - "text": "Detects unresolved references in JSON specification files.", - "markdown": "Detects unresolved references in JSON specification files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "SwJsonUnresolvedReferencesInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "OpenAPI specifications", - "index": 66, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SwJsonMaybeSpecificationInspection", - "shortDescription": { - "text": "Possible OpenAPI/Swagger specification candidate" - }, - "fullDescription": { - "text": "Detects JSON files that can be interpreted as a part of OpenAPI/Swagger specification. Such files do not contain explicit specification attributes, but they are referenced from primary specification files located nearby. The following example contains two files located in the same directory. First one is a plain primary specification file. Second is referenced from the first one and thus is suggested to be considered a specification too. Primary specification file 'openapi.yaml': 'openapi: 3.1.0\ncomponents:\n schemas:\n CustomSchema:\n description: Custom schema object\n properties:\n foo:\n $ref: 'common.components.json#/components/schemas/CommonSchema'' Specification file candidate 'common.components.json': '{\n \"components\": { // 'Mark file as OpenAPI specification' highlighting\n \"schemas\": {\n \"CommonSchema\": {\n \"description\": \"Common schema object reused in several specifications\"\n }\n }\n }\n}'", - "markdown": "Detects JSON files that can be interpreted as a part of OpenAPI/Swagger specification.\n\n\nSuch files do not contain explicit specification attributes, but they are referenced from primary specification files located nearby.\n\n\nThe following example contains two files located in the same directory. First one is a plain primary specification file.\nSecond is referenced from the first one and thus is suggested to be considered a specification too.\n\n**Primary specification file `openapi.yaml`:**\n\n\n openapi: 3.1.0\n components:\n schemas:\n CustomSchema:\n description: Custom schema object\n properties:\n foo:\n $ref: 'common.components.json#/components/schemas/CommonSchema'\n\n**Specification file candidate `common.components.json`:**\n\n\n {\n \"components\": { // 'Mark file as OpenAPI specification' highlighting\n \"schemas\": {\n \"CommonSchema\": {\n \"description\": \"Common schema object reused in several specifications\"\n }\n }\n }\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "SwJsonMaybeSpecificationInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "OpenAPI specifications", - "index": 66, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "SwYamlUnresolvedReferencesInspection", - "shortDescription": { - "text": "Unresolved reference" - }, - "fullDescription": { - "text": "Detects unresolved references in YAML specification files.", - "markdown": "Detects unresolved references in YAML specification files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "SwYamlUnresolvedReferencesInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "OpenAPI specifications", - "index": 66, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.github", - "version": "243.24609-ultimate", - "rules": [ - { - "id": "CyclicJobDependency", - "shortDescription": { - "text": "Cyclic job dependency" - }, - "fullDescription": { - "text": "Detects cyclic dependencies for jobs in GitHub workflow YML file. See the GitHub Actions documentation for more information on workflow syntax.", - "markdown": "Detects cyclic dependencies for jobs in GitHub workflow YML file.\n\n\nSee the [GitHub Actions documentation](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idneeds) for more information on workflow syntax." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CyclicJobDependency", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "GitHub actions", - "index": 70, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MandatoryParamsAbsent", - "shortDescription": { - "text": "Invalid parameters" - }, - "fullDescription": { - "text": "Reports the absence of mandatory parameters that do not have a default value for an action. It also provides a Quick Fix by adding the missing parameters with an empty value. For more information on action params, see the GitHub documentation.", - "markdown": "Reports the absence of mandatory parameters that do not have a default value for an action. It also provides a Quick Fix by adding the missing parameters with an empty value.\n\n\nFor more information on action params, see the [GitHub documentation](https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runsstepswith)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "MandatoryParamsAbsent", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "GitHub actions", - "index": 70, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "IllegalJobDependency", - "shortDescription": { - "text": "Undefined job dependency" - }, - "fullDescription": { - "text": "Detects dependencies to undefined Jobs in GitHub workflow YML file. See the GitHub Actions documentation for more information on workflow syntax.", - "markdown": "Detects dependencies to undefined Jobs in GitHub workflow YML file.\n\n\nSee the [GitHub Actions documentation](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idneeds) for more information on workflow syntax." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "IllegalJobDependency", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "GitHub actions", - "index": 70, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UndefinedAction", - "shortDescription": { - "text": "Undefined action/file reference" - }, - "fullDescription": { - "text": "Detects unresolved action references in GitHub action and workflow files. For more information on action references, see the GitHub documentation.", - "markdown": "Detects unresolved action references in GitHub action and workflow files.\n\n\nFor more information on action references, see the [GitHub documentation](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsuses)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UndefinedAction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "GitHub actions", - "index": 70, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "UndefinedParamsPresent", - "shortDescription": { - "text": "Undefined parameters" - }, - "fullDescription": { - "text": "Reports the presence of parameters which are not defined in an action. It also provides a Quick Fix by removing the undefined parameters. For more information on action params, see the GitHub documentation.", - "markdown": "Reports the presence of parameters which are not defined in an action. It also provides a Quick Fix by removing the undefined parameters.\n\n\nFor more information on action params, see the [GitHub documentation](https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runsstepswith)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UndefinedParamsPresent", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "GitHub actions", - "index": 70, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "GithubFunctionSignatureValidation", - "shortDescription": { - "text": "Standard library functions validation" - }, - "fullDescription": { - "text": "Reports invalid GitHub Actions Expression language standard library function calls For more information on GitHub Actions Expression language, see the GitHub documentation.", - "markdown": "Reports invalid GitHub Actions Expression language standard library function calls\n\n\nFor more information on GitHub Actions Expression language, see the [GitHub documentation](https://docs.github.com/en/actions/learn-github-actions/expressions)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "GithubFunctionSignatureValidation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "GitHub actions", - "index": 70, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.jetbrains.plugins.jade", - "version": "243.24609", - "rules": [ - { - "id": "JadeTabsAndSpaces", - "shortDescription": { - "text": "Tabs and spaces both used" - }, - "fullDescription": { - "text": "Reports use of spaces and tabs for indentation in a Pug file.", - "markdown": "Reports use of spaces and tabs for indentation in a Pug file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JadeTabsAndSpaces", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Pug_Jade", - "index": 71, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.jsonpath", - "version": "243.24609", - "rules": [ - { - "id": "JsonPathUnknownFunction", - "shortDescription": { - "text": "Unknown JSONPath function" - }, - "fullDescription": { - "text": "Reports an unknown name in a JSONPath function call instead of known standard function names: 'concat', 'keys', 'length', 'min', 'max', 'avg', 'stddev', 'sum'.", - "markdown": "Reports an unknown name in a JSONPath function call instead of known standard function names: `concat`, `keys`, `length`, `min`, `max`, `avg`, `stddev`, `sum`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsonPathUnknownFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JSONPath", - "index": 78, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonPathUnknownOperator", - "shortDescription": { - "text": "Unknown JSONPath operator" - }, - "fullDescription": { - "text": "Reports an unknown operator on a JSONPath expression instead of one of the standard ones: 'in', 'nin', 'subsetof', 'anyof', 'noneof', 'size', 'empty', 'contains'.", - "markdown": "Reports an unknown operator on a JSONPath expression instead of one of the standard ones: `in`, `nin`, `subsetof`, `anyof`, `noneof`, `size`, `empty`, `contains`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsonPathUnknownOperator", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JSONPath", - "index": 78, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonPathEvaluateUnknownKey", - "shortDescription": { - "text": "Unknown property key used for JSONPath evaluate expression" - }, - "fullDescription": { - "text": "Reports a key in a JSONPath expression that is missing in the source JSON document to evaluate.", - "markdown": "Reports a key in a JSONPath expression that is missing in the source JSON document to evaluate." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsonPathEvaluateUnknownKey", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JSONPath", - "index": 78, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "HtmlTools", - "version": "243.24609", - "rules": [ - { - "id": "HtmlRequiredSummaryAttribute", - "shortDescription": { - "text": "Missing required 'summary' attribute" - }, - "fullDescription": { - "text": "Reports a missing 'summary' attribute in a 'table' tag. Suggests adding a'summary' attribute. Based on WCAG 2.0: H73.", - "markdown": "Reports a missing `summary` attribute in a `table` tag. Suggests adding a`summary` attribute. Based on WCAG 2.0: [H73](https://www.w3.org/TR/WCAG20-TECHS/H73.html)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HtmlRequiredSummaryAttribute", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Accessibility", - "index": 83, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlNonExistentInternetResource", - "shortDescription": { - "text": "Unresolved web link" - }, - "fullDescription": { - "text": "Reports an unresolved web link. Works by making network requests in the background.", - "markdown": "Reports an unresolved web link. Works by making network requests in the background." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlNonExistentInternetResource", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlRequiredTitleAttribute", - "shortDescription": { - "text": "Missing required 'title' attribute" - }, - "fullDescription": { - "text": "Reports a missing title attribute 'frame', 'iframe', 'dl', and 'a' tags. Suggests adding a title attribute. Based on WCAG 2.0: H33, H40, and H64.", - "markdown": "Reports a missing title attribute `frame`, `iframe`, `dl`, and `a` tags. Suggests adding a title attribute. Based on WCAG 2.0: [H33](https://www.w3.org/TR/WCAG20-TECHS/H33.html), [H40](https://www.w3.org/TR/WCAG20-TECHS/H40.html), and [H64](https://www.w3.org/TR/WCAG20-TECHS/H64.html)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HtmlRequiredTitleAttribute", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Accessibility", - "index": 83, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlRequiredAltAttribute", - "shortDescription": { - "text": "Missing required 'alt' attribute" - }, - "fullDescription": { - "text": "Reports a missing 'alt' attribute in a 'img' or 'applet' tag or in a 'area' element of an image map. Suggests adding a required attribute with a text alternative for the contents of the tag. Based on WCAG 2.0: H24, H35, H36, H37.", - "markdown": "Reports a missing `alt` attribute in a `img` or `applet` tag or in a `area` element of an image map. Suggests adding a required attribute with a text alternative for the contents of the tag. Based on WCAG 2.0: [H24](https://www.w3.org/TR/WCAG20-TECHS/H24.html), [H35](https://www.w3.org/TR/WCAG20-TECHS/H35.html), [H36](https://www.w3.org/TR/WCAG20-TECHS/H36.html), [H37](https://www.w3.org/TR/WCAG20-TECHS/H37.html)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlRequiredAltAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Accessibility", - "index": 83, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlPresentationalElement", - "shortDescription": { - "text": "Presentational tag" - }, - "fullDescription": { - "text": "Reports a presentational HTML tag. Suggests replacing the presentational tag with a CSS or another tag.", - "markdown": "Reports a presentational HTML tag. Suggests replacing the presentational tag with a CSS or another tag." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "HtmlPresentationalElement", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlDeprecatedTag", - "shortDescription": { - "text": "Obsolete tag" - }, - "fullDescription": { - "text": "Reports an obsolete HTML5 tag. Suggests replacing the obsolete tag with a CSS or another tag.", - "markdown": "Reports an obsolete HTML5 tag. Suggests replacing the obsolete tag with a CSS or another tag." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlDeprecatedTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlFormInputWithoutLabel", - "shortDescription": { - "text": "Missing associated label" - }, - "fullDescription": { - "text": "Reports a form element ('input', 'textarea', or 'select') without an associated label. Suggests creating a new label. Based on WCAG 2.0: H44.", - "markdown": "Reports a form element (`input`, `textarea`, or `select`) without an associated label. Suggests creating a new label. Based on WCAG 2.0: [H44](https://www.w3.org/TR/WCAG20-TECHS/H44.html). " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlFormInputWithoutLabel", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Accessibility", - "index": 83, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlRequiredTitleElement", - "shortDescription": { - "text": "Missing required 'title' element" - }, - "fullDescription": { - "text": "Reports a missing 'title' element inside a 'head' section. Suggests adding a 'title' element. The title should describe the document. Based on WCAG 2.0: H25.", - "markdown": "Reports a missing `title` element inside a `head` section. Suggests adding a `title` element. The title should describe the document. Based on WCAG 2.0: [H25](https://www.w3.org/TR/WCAG20-TECHS/H25.html)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlRequiredTitleElement", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Accessibility", - "index": 83, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlDeprecatedAttribute", - "shortDescription": { - "text": "Obsolete attribute" - }, - "fullDescription": { - "text": "Reports an obsolete HTML5 attribute.", - "markdown": "Reports an obsolete HTML5 attribute." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlDeprecatedAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckImageSize", - "shortDescription": { - "text": "Mismatched image size" - }, - "fullDescription": { - "text": "Reports a 'width' and 'height' attribute value of a 'img' tag that is different from the actual width and height of the referenced image.", - "markdown": "Reports a `width` and `height` attribute value of a `img` tag that is different from the actual width and height of the referenced image." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CheckImageSize", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Performance" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 11, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "HtmlRequiredLangAttribute", - "shortDescription": { - "text": "Missing required 'lang' attribute" - }, - "fullDescription": { - "text": "Reports a missing 'lang' (or 'xml:lang') attribute in a 'html' tag. Suggests adding a required attribute to state the default language of the document. Based on WCAG 2.0: H57.", - "markdown": "Reports a missing `lang` (or `xml:lang`) attribute in a `html` tag. Suggests adding a required attribute to state the default language of the document. Based on WCAG 2.0: [H57](https://www.w3.org/TR/WCAG20-TECHS/H57.html)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HtmlRequiredLangAttribute", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "HTML/Accessibility", - "index": 83, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.modules.json", - "version": "243.24609", - "rules": [ - { - "id": "JsonSchemaCompliance", - "shortDescription": { - "text": "Compliance with JSON schema" - }, - "fullDescription": { - "text": "Reports inconsistence between a JSON file and the JSON schema that is assigned to it.", - "markdown": "Reports inconsistence between a JSON file and the [JSON schema](https://json-schema.org) that is assigned to it. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsonSchemaCompliance", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 84, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonSchemaDeprecation", - "shortDescription": { - "text": "Deprecated JSON property" - }, - "fullDescription": { - "text": "Reports a deprecated property in a JSON file. Note that deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard extension 'deprecationMessage'.", - "markdown": "Reports a deprecated property in a JSON file. \nNote that deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard extension 'deprecationMessage'." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "JsonSchemaDeprecation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 84, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonStandardCompliance", - "shortDescription": { - "text": "Compliance with JSON standard" - }, - "fullDescription": { - "text": "Reports the following discrepancies of a JSON file with the language specification: A line or block comment (configurable). Multiple top-level values (expect for JSON Lines files, configurable for others). A trailing comma in an object or array (configurable). A single quoted string. A property key is a not a double quoted strings. A NaN or Infinity/-Infinity numeric value as a floating point literal (configurable).", - "markdown": "Reports the following discrepancies of a JSON file with [the language specification](https://tools.ietf.org/html/rfc7159):\n\n* A line or block comment (configurable).\n* Multiple top-level values (expect for JSON Lines files, configurable for others).\n* A trailing comma in an object or array (configurable).\n* A single quoted string.\n* A property key is a not a double quoted strings.\n* A NaN or Infinity/-Infinity numeric value as a floating point literal (configurable)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "JsonStandardCompliance", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 84, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonSchemaRefReference", - "shortDescription": { - "text": "Unresolved '$ref' and '$schema' references" - }, - "fullDescription": { - "text": "Reports an unresolved '$ref' or '$schema' path in a JSON schema.", - "markdown": "Reports an unresolved `$ref` or `$schema` path in a JSON schema. " - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsonSchemaRefReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 84, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "Json5StandardCompliance", - "shortDescription": { - "text": "Compliance with JSON5 standard" - }, - "fullDescription": { - "text": "Reports inconsistency with the language specification in a JSON5 file.", - "markdown": "Reports inconsistency with [the language specification](http://json5.org) in a JSON5 file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "Json5StandardCompliance", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 84, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "JsonDuplicatePropertyKeys", - "shortDescription": { - "text": "Duplicate keys in object literals" - }, - "fullDescription": { - "text": "Reports a duplicate key in an object literal.", - "markdown": "Reports a duplicate key in an object literal." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "JsonDuplicatePropertyKeys", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "JSON and JSON5", - "index": 84, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.vue", - "version": "243.24609", - "rules": [ - { - "id": "VueMissingComponentImportInspection", - "shortDescription": { - "text": "Missing component import" - }, - "fullDescription": { - "text": "Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import.", - "markdown": "Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "VueMissingComponentImportInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Vue", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VueDeprecatedSymbol", - "shortDescription": { - "text": "Deprecated symbol" - }, - "fullDescription": { - "text": "Reports a deprecated Vue symbol.", - "markdown": "Reports a deprecated Vue symbol." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "VueDeprecatedSymbol", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Vue", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VueUnrecognizedDirective", - "shortDescription": { - "text": "Unrecognized directive" - }, - "fullDescription": { - "text": "Reports an unrecognized Vue directive.", - "markdown": "Reports an unrecognized Vue directive." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "VueUnrecognizedDirective", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Vue", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VueDuplicateTag", - "shortDescription": { - "text": "Duplicate template/script tag" - }, - "fullDescription": { - "text": "Reports multiple usages of the 'template' or 'script' tag in a Vue file. Vue Component specification indicates that each '*.vue' file can contain at most one 'template' or 'script' block at a time.", - "markdown": "Reports multiple usages of the `template` or `script` tag in a Vue file.\n\n[Vue Component specification](https://vue-loader.vuejs.org/spec.html) indicates that each `*.vue` file can contain at most one `template` or `script` block at a time." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "VueDuplicateTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Vue", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VueDataFunction", - "shortDescription": { - "text": "Data function" - }, - "fullDescription": { - "text": "Reports a Vue component data property that is not a function. Suggests wrapping an object literal with a function. When defining a component, 'data' must be declared as a function that returns the initial data object, because the same definition will be used for creating numerous instances. If a plain object is still used for 'data', that very object will be shared by reference across all instances created! With a 'data' function, every time a new instance is created we can simply call it to return a fresh copy of the initial data.", - "markdown": "Reports a Vue component [data](https://vuejs.org/v2/api/#data) property that is not a function. Suggests wrapping an object literal with a function.\n\nWhen defining a component, `data` must be declared as a function that returns the initial data object, because the same definition will be used for creating numerous instances. If a plain object is still used for `data`, that very object will be shared by reference across all instances created! With a `data` function, every time a new instance is created we can simply call it to return a fresh copy of the initial data." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "VueDataFunction", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Vue", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "VueUnrecognizedSlot", - "shortDescription": { - "text": "Unrecognized slot" - }, - "fullDescription": { - "text": "Reports an unrecognized Vue slot.", - "markdown": "Reports an unrecognized Vue slot." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "VueUnrecognizedSlot", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Vue", - "index": 88, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.intellij.plugins.markdown", - "version": "243.24609", - "rules": [ - { - "id": "MarkdownOutdatedTableOfContents", - "shortDescription": { - "text": "Outdated table of contents section" - }, - "fullDescription": { - "text": "Checks if a particular table of contents section corresponds to the actual structure of the document.", - "markdown": "Checks if a particular table of contents section corresponds to the actual structure of the document." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownOutdatedTableOfContents", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownUnresolvedLinkLabel", - "shortDescription": { - "text": "Unresolved link label" - }, - "fullDescription": { - "text": "Reports unresolved link labels in Markdown files.", - "markdown": "Reports unresolved link labels in Markdown files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownUnresolvedLinkLabel", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownNoTableBorders", - "shortDescription": { - "text": "Table doesn't have side borders" - }, - "fullDescription": { - "text": "Checks if table has correct side borders. For compatibility reasons all table rows should have borders (pipe symbols) at the start and at the end.", - "markdown": "Checks if table has correct side borders. For compatibility reasons all table rows should have borders (pipe symbols) at the start and at the end." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownNoTableBorders", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownIncorrectlyNumberedListItem", - "shortDescription": { - "text": "Incorrectly numbered list item" - }, - "fullDescription": { - "text": "Ordered list items are expected to have straight numeration starting from 1. The motivation behind this is that most of Markdown processors are ignoring the numbering of ordered lists. A processor will generate an '
    ' element for such list, that will number items continuously from 1.", - "markdown": "Ordered list items are expected to have straight numeration starting from 1.\n\nThe motivation behind this is that most of Markdown processors are ignoring the numbering of ordered lists. A processor will generate an `
      ` element for such list, that will number items continuously from 1." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownIncorrectlyNumberedListItem", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownUnresolvedHeaderReference", - "shortDescription": { - "text": "Unresolved header reference" - }, - "fullDescription": { - "text": "Reports unresolved header references in Markdown files.", - "markdown": "Reports unresolved header references in Markdown files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownUnresolvedHeaderReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownLinkDestinationWithSpaces", - "shortDescription": { - "text": "Links should not contain spaces" - }, - "fullDescription": { - "text": "To ensure consistency between different tools, file links should not contain spaces. Example: '[Some file link](some file.md)' A quick-fix replaces spaces with their url-encoded equivalent: '[Some file link](some%20file.md)'", - "markdown": "To ensure consistency between different tools, file links should not contain spaces.\n\n**Example:**\n\n\n [Some file link](some file.md)\n\nA quick-fix replaces spaces with their url-encoded equivalent:\n\n\n [Some file link](some%20file.md)\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownLinkDestinationWithSpaces", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownIncorrectTableFormatting", - "shortDescription": { - "text": "Incorrect table formatting" - }, - "fullDescription": { - "text": "Checks if table is correctly formatted.", - "markdown": "Checks if table is correctly formatted." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "MarkdownIncorrectTableFormatting", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "MarkdownUnresolvedFileReference", - "shortDescription": { - "text": "Unresolved file references" - }, - "fullDescription": { - "text": "Reports unresolved file references in Markdown files.", - "markdown": "Reports unresolved file references in Markdown files." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "MarkdownUnresolvedFileReference", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Markdown", - "index": 90, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.yaml", - "version": "243.24609", - "rules": [ - { - "id": "YAMLIncompatibleTypes", - "shortDescription": { - "text": "Suspicious type mismatch" - }, - "fullDescription": { - "text": "Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions. Example: 'myElements:\n - value1\n - value2\n - false # <- reported, because it is a boolean value, while other values are strings'", - "markdown": "Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions.\n\n**Example:**\n\n\n myElements:\n - value1\n - value2\n - false # <- reported, because it is a boolean value, while other values are strings\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "YAMLIncompatibleTypes", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAMLUnresolvedAlias", - "shortDescription": { - "text": "Unresolved alias" - }, - "fullDescription": { - "text": "Reports unresolved aliases in YAML files. Example: 'some_key: *unknown_alias'", - "markdown": "Reports unresolved aliases in YAML files.\n\n**Example:**\n\n\n some_key: *unknown_alias\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "YAMLUnresolvedAlias", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAMLDuplicatedKeys", - "shortDescription": { - "text": "Duplicated YAML keys" - }, - "fullDescription": { - "text": "Reports duplicated keys in YAML files. Example: 'same_key: some value\n same_key: another value'", - "markdown": "Reports duplicated keys in YAML files.\n\n**Example:**\n\n\n same_key: some value\n same_key: another value\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "YAMLDuplicatedKeys", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAMLSchemaValidation", - "shortDescription": { - "text": "Validation by JSON Schema" - }, - "fullDescription": { - "text": "Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified. Scheme example: '{\n \"properties\": {\n \"SomeNumberProperty\": {\n \"type\": \"number\"\n }\n }\n }' The following is an example with the corresponding warning: 'SomeNumberProperty: hello world'", - "markdown": "Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified.\n\n**Scheme example:**\n\n\n {\n \"properties\": {\n \"SomeNumberProperty\": {\n \"type\": \"number\"\n }\n }\n }\n\n**The following is an example with the corresponding warning:**\n\n\n SomeNumberProperty: hello world\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "YAMLSchemaValidation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAMLSchemaDeprecation", - "shortDescription": { - "text": "Deprecated YAML key" - }, - "fullDescription": { - "text": "Reports deprecated keys in YAML files. Deprecation is checked only if there exists a JSON schema associated with the corresponding YAML file. Note that the deprecation mechanism is not defined in the JSON Schema specification yet, and this inspection uses a non-standard 'deprecationMessage' extension. Scheme deprecation example: '{\n \"properties\": {\n \"SomeDeprecatedProperty\": {\n \"deprecationMessage\": \"Baz\",\n \"description\": \"Foo bar\"\n }\n }\n }' The following is an example with the corresponding warning: 'SomeDeprecatedProperty: some value'", - "markdown": "Reports deprecated keys in YAML files.\n\nDeprecation is checked only if there exists a JSON schema associated with the corresponding YAML file.\n\nNote that the deprecation mechanism is not defined in the JSON Schema specification yet,\nand this inspection uses a non-standard `deprecationMessage` extension.\n\n**Scheme deprecation example:**\n\n\n {\n \"properties\": {\n \"SomeDeprecatedProperty\": {\n \"deprecationMessage\": \"Baz\",\n \"description\": \"Foo bar\"\n }\n }\n }\n\n**The following is an example with the corresponding warning:**\n\n\n SomeDeprecatedProperty: some value\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "YAMLSchemaDeprecation", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAMLRecursiveAlias", - "shortDescription": { - "text": "Recursive alias" - }, - "fullDescription": { - "text": "Reports recursion in YAML aliases. Alias can't be recursive and be used inside the data referenced by a corresponding anchor. Example: 'some_key: &some_anchor\n sub_key1: value1\n sub_key2: *some_anchor'", - "markdown": "Reports recursion in YAML aliases.\n\nAlias can't be recursive and be used inside the data referenced by a corresponding anchor.\n\n**Example:**\n\n\n some_key: &some_anchor\n sub_key1: value1\n sub_key2: *some_anchor\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "YAMLRecursiveAlias", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "YAMLUnusedAnchor", - "shortDescription": { - "text": "Unused anchor" - }, - "fullDescription": { - "text": "Reports unused anchors. Example: 'some_key: &some_anchor\n key1: value1'", - "markdown": "Reports unused anchors.\n\n**Example:**\n\n\n some_key: &some_anchor\n key1: value1\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "YAMLUnusedAnchor", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "YAML", - "index": 95, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "intellij.webpack", - "version": "243.24609", - "rules": [ - { - "id": "WebpackConfigHighlighting", - "shortDescription": { - "text": "Webpack config compliance with JSON Schema" - }, - "fullDescription": { - "text": "Validates options in webpack config files (which name should start with `webpack`, e.g. `webpack.config.js`) against webpack options schema. Disable this inspection to turn off validation and code completion inside the configuration object.", - "markdown": "Validates options in webpack config files (which name should start with \\`webpack\\`, e.g. \\`webpack.config.js\\`) against [webpack options schema](https://github.com/webpack/webpack/blob/master/schemas/WebpackOptions.json). \n\nDisable this inspection to turn off validation and code completion inside the configuration object." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "WebpackConfigHighlighting", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/General", - "index": 17, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.plugins.dependencyAnalysis", - "version": "243.24609", - "rules": [ - { - "id": "CheckDependencyLicenses", - "shortDescription": { - "text": "Check dependency licenses" - }, - "fullDescription": { - "text": "Check dependencies licenses for possible problems: missing or prohibited licenses, or other compliance issues", - "markdown": "Check dependencies licenses for possible problems: missing or prohibited licenses, or other compliance issues" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "CheckDependencyLicenses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dependency analysis", - "index": 105, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckThirdPartySoftwareList", - "shortDescription": { - "text": "Check third party software list" - }, - "fullDescription": { - "text": "Check project for possible problems: user's third party software list does not match the collected project metadata", - "markdown": "Check project for possible problems: user's third party software list does not match the collected project metadata" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CheckThirdPartySoftwareList", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dependency analysis", - "index": 105, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CheckModuleLicenses", - "shortDescription": { - "text": "Check module licenses" - }, - "fullDescription": { - "text": "Check module licenses for possible problems: missing licenses or other compliance issues", - "markdown": "Check module licenses for possible problems: missing licenses or other compliance issues" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CheckModuleLicenses", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dependency analysis", - "index": 105, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.grpc", - "version": "243.24609", - "rules": [ - { - "id": "GrpcSchemes", - "shortDescription": { - "text": "GRPC request schema can be substituted or omitted" - }, - "fullDescription": { - "text": "Reports unnecessary `grpc` or standard `http[s]` schemes usage in gRPC requests Example requests: '# `grpc` scheme may be omitted since insecure connection is assumed by default\nGRPC grpc://localhost/TestService/testRpc' '# `http` scheme may be omitted: prefer empty scheme for insecure connection and a dedicated `grpcs` scheme for a secure one\nGRPC http://localhost/TestService/testRpc' '# `https` scheme should be replaced by `grpcs`: prefer a dedicated `grpcs` scheme to indicate that transport layer security should be enabled to execute the request\nGRPC https://localhost/TestService/testRpc' To avoid confusion, it is recommended to use dedicated `grpcs` scheme in a gRPC request, when the request should use secure channel underneath. Otherwise, the scheme might be completely omitted", - "markdown": "Reports unnecessary \\`grpc\\` or standard \\`http\\[s\\]\\` schemes usage in gRPC requests\n\n\nExample requests:\n\n\n # `grpc` scheme may be omitted since insecure connection is assumed by default\n GRPC grpc://localhost/TestService/testRpc\n\n\n # `http` scheme may be omitted: prefer empty scheme for insecure connection and a dedicated `grpcs` scheme for a secure one\n GRPC http://localhost/TestService/testRpc\n\n\n # `https` scheme should be replaced by `grpcs`: prefer a dedicated `grpcs` scheme to indicate that transport layer security should be enabled to execute the request\n GRPC https://localhost/TestService/testRpc\n\n\nTo avoid confusion, it is recommended to use dedicated \\`grpcs\\` scheme in a gRPC request, when the request should use secure channel\nunderneath. Otherwise, the scheme might be completely omitted" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "GrpcSchemes", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "Inappropriate gRPC request scheme", - "index": 106, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.jetbrains.sh", - "version": "243.24609", - "rules": [ - { - "id": "ShellCheck", - "shortDescription": { - "text": "ShellCheck" - }, - "fullDescription": { - "text": "Reports shell script bugs detected by the integrated ShellCheck static analysis tool.", - "markdown": "Reports shell script bugs detected by the integrated [ShellCheck](https://github.com/koalaman/shellcheck) static analysis tool." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "ShellCheck", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Security" - } - }, - "relationships": [ - { - "target": { - "id": "Shell script", - "index": 111, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.less", - "version": "243.24609", - "rules": [ - { - "id": "LessResolvedByNameOnly", - "shortDescription": { - "text": "Missing import" - }, - "fullDescription": { - "text": "Reports a reference to a variable or mixin that is declared in another file, which is not explicitly imported in the current file. Example: '* {\n margin: @var-in-other-file;\n}'", - "markdown": "Reports a reference to a variable or mixin that is declared in another file, which is not explicitly [imported](http://lesscss.org/features/#import-atrules-feature) in the current file.\n\n**Example:**\n\n\n * {\n margin: @var-in-other-file;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "LessResolvedByNameOnly", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Less", - "index": 121, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LessUnresolvedVariable", - "shortDescription": { - "text": "Unresolved variable" - }, - "fullDescription": { - "text": "Reports a reference to a Less variable that is not resolved. Example: '* {\n margin: @unknown-var;\n}'", - "markdown": "Reports a reference to a [Less variable](http://lesscss.org/features/#variables-feature) that is not resolved.\n\n**Example:**\n\n\n * {\n margin: @unknown-var;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LessUnresolvedVariable", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Less", - "index": 121, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "LessUnresolvedMixin", - "shortDescription": { - "text": "Unresolved mixin" - }, - "fullDescription": { - "text": "Reports a reference to a Less mixin that is not resolved. Example: '* {\n .unknown-mixin();\n}'", - "markdown": "Reports a reference to a [Less mixin](http://lesscss.org/features/#mixins-feature) that is not resolved.\n\n**Example:**\n\n\n * {\n .unknown-mixin();\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LessUnresolvedMixin", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Less", - "index": 121, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "tanvd.grazi", - "version": "243.24609", - "rules": [ - { - "id": "LanguageDetectionInspection", - "shortDescription": { - "text": "Natural language detection" - }, - "fullDescription": { - "text": "Detects natural languages and suggests enabling corresponding grammar and spelling checks.", - "markdown": "Detects natural languages and suggests enabling corresponding grammar and spelling checks." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "LanguageDetectionInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Proofreading", - "index": 122, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "GrazieInspection", - "shortDescription": { - "text": "Grammar" - }, - "fullDescription": { - "text": "Reports grammar mistakes in your text. You can configure the inspection in Settings | Editor | Natural Languages | Grammar and Style.", - "markdown": "Reports grammar mistakes in your text. You can configure the inspection in [Settings \\| Editor \\| Natural Languages \\| Grammar and Style](settings://reference.settingsdialog.project.grazie)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "GrazieInspection", - "ideaSeverity": "GRAMMAR_ERROR", - "qodanaSeverity": "Info", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Proofreading", - "index": 122, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.jetbrains.rider-cpp", - "version": "243.24609", - "rules": [ - { - "id": "UnrealJsonLocalInspectionTool", - "shortDescription": { - "text": "Unreal Engine json inspection" - }, - "fullDescription": { - "text": "RIDER-83134", - "markdown": "[RIDER-83134](https://youtrack.jetbrains.com/issue/RIDER-83134/)" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "UnrealJsonLocalInspectionTool", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Unreal Engine", - "index": 126, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.stylelint", - "version": "243.24609", - "rules": [ - { - "id": "Stylelint", - "shortDescription": { - "text": "Stylelint" - }, - "fullDescription": { - "text": "Reports a discrepancy detected by the Stylelint linter. The highlighting is based on the rule severity specified in the Stylelint configuration file for each individual rule.", - "markdown": "Reports a discrepancy detected by the [Stylelint](http://stylelint.io) linter. \n\nThe highlighting is based on the rule severity specified in the [Stylelint configuration file](https://stylelint.io/user-guide/configure) for each individual rule." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "Stylelint", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Code quality tools", - "index": 129, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.hardcodedPasswords", - "version": "243.24609", - "rules": [ - { - "id": "HardcodedPasswords", - "shortDescription": { - "text": "Hardcoded passwords" - }, - "fullDescription": { - "text": "Detects potential security tokens or passwords in comments using entropy analysis and regular expressions. This inspection utilizes entropy analysis and regular expressions to scan the codebase for strings that resemble security tokens or passwords. It highlights these findings, helping developers identify and secure potential vulnerabilities. The inspection's effectiveness relies on the patterns defined in its configuration, making it adaptable to different coding environments and requirements. '// Example of a regular expression pattern used for detection:\n/[0-9]+:AA[0-9A-Za-z\\-_]{33}/' Text after this comment will only be shown in the settings of the inspection.", - "markdown": "Detects potential security tokens or passwords in comments using entropy analysis and regular expressions.\n\n\nThis inspection utilizes entropy analysis and regular expressions to scan the codebase for strings that resemble security tokens or\npasswords. It highlights these findings, helping developers identify and secure potential vulnerabilities. The inspection's effectiveness\nrelies on the patterns defined in its configuration, making it adaptable to different coding environments and requirements.\n\n\n // Example of a regular expression pattern used for detection:\n /[0-9]+:AA[0-9A-Za-z\\-_]{33}/\n\nText after this comment will only be shown in the settings of the inspection." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "HardcodedPasswords", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Security", - "index": 131, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "Karma", - "version": "243.24609", - "rules": [ - { - "id": "KarmaConfigFile", - "shortDescription": { - "text": "Invalid Karma configuration file" - }, - "fullDescription": { - "text": "Reports a potential error in a file path ('basePath', 'files') for a Karma configuration file, for example, 'karma.conf.js'.", - "markdown": "Reports a potential error in a file path ('basePath', 'files') for a Karma configuration file, for example, `karma.conf.js`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "KarmaConfigFile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Unit testing", - "index": 140, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.jetbrains.plugins.ini4idea", - "version": "243.24609", - "rules": [ - { - "id": "DuplicateSectionInFile", - "shortDescription": { - "text": "Duplicate section in file" - }, - "fullDescription": { - "text": "Reports duplicate sections in the 'ini' file.", - "markdown": "Reports duplicate sections in the `ini` file." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DuplicateSectionInFile", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Ini files", - "index": 147, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "DuplicateKeyInSection", - "shortDescription": { - "text": "Duplicate directive in section" - }, - "fullDescription": { - "text": "Reports duplicate properties in the 'ini' file section.", - "markdown": "Reports duplicate properties in the `ini` file section." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "DuplicateKeyInSection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "Ini files", - "index": 147, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "tslint", - "version": "243.24609", - "rules": [ - { - "id": "TsLint", - "shortDescription": { - "text": "TSLint" - }, - "fullDescription": { - "text": "Reports a discrepancy detected by the TSLint linter. The highlighting is based on the rule severity specified in the TSLint configuration file for each individual rule. Clear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all TSLint rules.", - "markdown": "Reports a discrepancy detected by the [TSLint](https://github.com/palantir/tslint) linter. \n\nThe highlighting is based on the rule severity specified in the [TSLint configuration file](https://palantir.github.io/tslint/usage/configuration/) for each individual rule. \n\nClear the 'Use rule severity from the configuration file' checkbox to use the severity configured in this inspection for all TSLint rules." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TsLint", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Code quality tools", - "index": 69, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.intellij.intelliLang", - "version": "243.24609", - "rules": [ - { - "id": "InjectedReferences", - "shortDescription": { - "text": "Injected references" - }, - "fullDescription": { - "text": "Reports unresolved references injected by Language Injections. Example: '@Language(\"file-reference\")\n String fileName = \"/home/user/nonexistent.file\"; // highlighted if file doesn't exist'", - "markdown": "Reports unresolved references injected by [Language Injections](https://www.jetbrains.com/help/idea/using-language-injections.html).\n\nExample:\n\n\n @Language(\"file-reference\")\n String fileName = \"/home/user/nonexistent.file\"; // highlighted if file doesn't exist\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "InjectedReferences", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Sanity" - } - }, - "relationships": [ - { - "target": { - "id": "General", - "index": 46, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "W3Validators", - "version": "243.24609", - "rules": [ - { - "id": "W3CssValidation", - "shortDescription": { - "text": "W3C CSS validator" - }, - "fullDescription": { - "text": "Reports a discrepancy detected by the W3C CSS Validator.", - "markdown": "Reports a discrepancy detected by the [W3C CSS Validator](https://jigsaw.w3.org/css-validator/)." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "W3CssValidation", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "CSS/Code quality tools", - "index": 129, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "org.jetbrains.plugins.docker.gateway", - "version": "243.24609", - "rules": [ - { - "id": "DevContainerIdeSettings", - "shortDescription": { - "text": "Validate IDE settings" - }, - "fullDescription": { - "text": "No description available", - "markdown": "No description available" - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "DevContainerIdeSettings", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "Dev Container", - "index": 153, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.intellij.plugins.watcher", - "version": "243.24609", - "rules": [ - { - "id": "TaskProblemsInspection", - "shortDescription": { - "text": "File watcher problems" - }, - "fullDescription": { - "text": "Reports an error detected by the output filters from a File Watcher. A File Watcher tracks changes in files and executes the configured command when a change is detected.", - "markdown": "Reports an error detected by the output filters from a File Watcher.\n\n\nA File Watcher tracks changes in files and executes the configured command when a change is detected." - }, - "defaultConfiguration": { - "enabled": false, - "level": "note", - "parameters": { - "suppressToolId": "TaskProblemsInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "codeQualityCategory": "Unspecified" - } - }, - "relationships": [ - { - "target": { - "id": "File Watchers", - "index": 154, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "idea.plugin.protoeditor", - "version": "243.24609", - "rules": [ - { - "id": "PbDuplicatedImports", - "shortDescription": { - "text": "Duplicated import statements" - }, - "fullDescription": { - "text": "Reports effectively equivalent import statements.", - "markdown": "Reports effectively equivalent import statements." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "PbDuplicatedImports", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Reliability" - } - }, - "relationships": [ - { - "target": { - "id": "Protocol Buffers", - "index": 164, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "com.dmarcotte.handlebars", - "version": "243.24609", - "rules": [ - { - "id": "HbEmptyBlock", - "shortDescription": { - "text": "Missing block helper argument" - }, - "fullDescription": { - "text": "Reports an 'if', 'each', or 'with' block helper without an argument.", - "markdown": "Reports an `if`, `each`, or `with` block helper without an argument." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "HbEmptyBlock", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "codeQualityCategory": "Code Style" - } - }, - "relationships": [ - { - "target": { - "id": "Handlebars_Mustache", - "index": 170, - "toolComponent": { - "name": "QDNET" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - } - ] - }, - "invocations": [ - { - "startTimeUtc": "2025-04-24T18:33:18.94655429Z", - "exitCode": 0, - "executionSuccessful": true - } - ], - "language": "en-US", - "versionControlProvenance": [ - { - "repositoryUri": "https://github.com/GitTools/GitVersion.git", - "revisionId": "552cd5839f9b4ff25dac4f1f549e77668fc417ef", - "branch": "feature/qodana-fixes", - "properties": { - "repoUrl": "https://github.com/GitTools/GitVersion.git", - "lastAuthorName": "Artur Stolear", - "vcsType": "Git", - "lastAuthorEmail": "artur.stolear@gmail.com" - } - } - ], - "results": [ - { - "ruleId": "ChangeFieldTypeToSystemThreadingLock", - "kind": "fail", - "level": "note", - "message": { - "text": "Consider changing the type of 'LockObject' field to 'System.Threading.Lock' to express field intent", - "markdown": "Consider changing the type of 'LockObject' field to 'System.Threading.Lock' to express field intent" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Testing/Helpers/ProcessHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 9, - "startColumn": 29, - "charOffset": 210, - "charLength": 6, - "snippet": { - "text": "object" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 7, - "startColumn": 1, - "charOffset": 138, - "charLength": 202, - "snippet": { - "text": "public static partial class ProcessHelper\n{\n private static readonly object LockObject = new();\n\n // http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/f6069441-4ab1-4299-ad6a-b8bb9ed36be3" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "243d981fb6eb8384", - "equalIndicator/v1": "9ce8c7e55a736d0868c40b5038a5e84f48bbfca14180ebd2b27ecc4545156d01" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "ChangeFieldTypeToSystemThreadingLock", - "kind": "fail", - "level": "note", - "message": { - "text": "Consider changing the type of 'locker' field to 'System.Threading.Lock' to express field intent", - "markdown": "Consider changing the type of 'locker' field to 'System.Threading.Lock' to express field intent" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Logging/ConsoleAppender.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 5, - "startColumn": 22, - "charOffset": 100, - "charLength": 6, - "snippet": { - "text": "object" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 3, - "startColumn": 1, - "charOffset": 31, - "charLength": 192, - "snippet": { - "text": "internal class ConsoleAppender : ILogAppender\n{\n private readonly object locker = new();\n private readonly Dictionary palettes = CreatePalette();\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8ce2b8bdd4789fd5", - "equalIndicator/v1": "fc85c07d08f54a93d98b43b199f1cfa9eaf5c4a71280a3912014a923b81d4232" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 9.0" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 173, - "startColumn": 1, - "charOffset": 6763, - "charLength": 56, - "snippet": { - "text": "resharper_unused_method_return_value_global_highlighting" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 171, - "startColumn": 1, - "charOffset": 6695, - "charLength": 131, - "snippet": { - "text": "resharper_unused_auto_property_accessor_global_highlighting = none\n\nresharper_unused_method_return_value_global_highlighting = none" - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f6fe51c359b54477", - "equalIndicator/v1": "8551ac8f1f5694db3b26e53bd40fcd09a79b4bbd2f22850569575210dd66333d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 162, - "startColumn": 1, - "charOffset": 6452, - "charLength": 34, - "snippet": { - "text": "dotnet_diagnostic.RCS1037.severity" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 160, - "startColumn": 1, - "charOffset": 6411, - "charLength": 124, - "snippet": { - "text": "\n# RCS1037: Remove trailing white-space.\ndotnet_diagnostic.RCS1037.severity = error\n\n# RCS1036: Remove redundant empty line." - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "002dbf3d5be336ee", - "equalIndicator/v1": "88845b091d5e4987ce1aec8a2d940e7d27f9a2464a89ccaca2d0af10b55bfb0c" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 167, - "startColumn": 1, - "charOffset": 6580, - "charLength": 29, - "snippet": { - "text": "xml_space_before_self_closing" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 165, - "startColumn": 1, - "charOffset": 6536, - "charLength": 157, - "snippet": { - "text": "dotnet_diagnostic.RCS1036.severity = error\n\nxml_space_before_self_closing = true\n\nresharper_arrange_object_creation_when_type_not_evident_highlighting = none" - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1d2dff93b57079ac", - "equalIndicator/v1": "98c80a441f9ef5edf0b3cce3fe31ba0fca1fee2378ffe4035a40c1a7b30c70c5" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 159, - "startColumn": 1, - "charOffset": 6366, - "charLength": 34, - "snippet": { - "text": "dotnet_diagnostic.IDE0005.severity" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 157, - "startColumn": 1, - "charOffset": 6322, - "charLength": 129, - "snippet": { - "text": "\n# IDE0005: Using directive is unnecessary.\ndotnet_diagnostic.IDE0005.severity = warning\n\n# RCS1037: Remove trailing white-space." - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e19c8ddf75f7decc", - "equalIndicator/v1": "b44a286683a4904208a57ff03b1e0ab0f822c6daab929bdf2994a42050a7f98d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 169, - "startColumn": 1, - "charOffset": 6618, - "charLength": 68, - "snippet": { - "text": "resharper_arrange_object_creation_when_type_not_evident_highlighting" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 167, - "startColumn": 1, - "charOffset": 6580, - "charLength": 181, - "snippet": { - "text": "xml_space_before_self_closing = true\n\nresharper_arrange_object_creation_when_type_not_evident_highlighting = none\n\nresharper_unused_auto_property_accessor_global_highlighting = none" - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "777afc2fdb959232", - "equalIndicator/v1": "baef58ab287e0df1579468dec06220869bb62969dad314e065aeb1d8b865605e" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 165, - "startColumn": 1, - "charOffset": 6536, - "charLength": 34, - "snippet": { - "text": "dotnet_diagnostic.RCS1036.severity" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 163, - "startColumn": 1, - "charOffset": 6495, - "charLength": 121, - "snippet": { - "text": "\n# RCS1036: Remove redundant empty line.\ndotnet_diagnostic.RCS1036.severity = error\n\nxml_space_before_self_closing = true" - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "36e32bd3acbfb8d3", - "equalIndicator/v1": "df48f45afbdbddbe9a7a8de2fa6dc2a40f9932e4ed4d629f5dfb15e4c353c702" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "EditorConfigKeyCorrectness", - "kind": "fail", - "level": "warning", - "message": { - "text": "The property is not supported", - "markdown": "The property is not supported" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "../.editorconfig", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 171, - "startColumn": 1, - "charOffset": 6695, - "charLength": 59, - "snippet": { - "text": "resharper_unused_auto_property_accessor_global_highlighting" - }, - "sourceLanguage": "EditorConfig" - }, - "contextRegion": { - "startLine": 169, - "startColumn": 1, - "charOffset": 6618, - "charLength": 208, - "snippet": { - "text": "resharper_arrange_object_creation_when_type_not_evident_highlighting = none\n\nresharper_unused_auto_property_accessor_global_highlighting = none\n\nresharper_unused_method_return_value_global_highlighting = none" - }, - "sourceLanguage": "EditorConfig" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "rider.module", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1b9f756ea618b3a1", - "equalIndicator/v1": "f4dedbf8e985341cdfaa2ad6304d0d02419a65ce14c2ad3426df8c33dee1d38d" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WARNING", - "qodanaSeverity": "High", - "tags": [ - "EditorConfig" - ] - } - }, - { - "ruleId": "UnusedType.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Class 'IgnoreConfigurationBuilder' is never used (except inside its declaration)", - "markdown": "Class 'IgnoreConfigurationBuilder' is never used (except inside its declaration)" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 3, - "startColumn": 23, - "charOffset": 59, - "charLength": 26, - "snippet": { - "text": "IgnoreConfigurationBuilder" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 1, - "startColumn": 1, - "charOffset": 0, - "charLength": 146, - "snippet": { - "text": "namespace GitVersion.Configuration;\n\ninternal sealed class IgnoreConfigurationBuilder\n{\n public static IgnoreConfigurationBuilder New => new();" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "25a2ace762dfb00f", - "equalIndicator/v1": "15d42fca64552bc8aff310e634bee6a2b9146fc9dfb8eb5f3b15593287d2233b" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedType.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Class 'TaggedCommitVersionStrategy' is never used", - "markdown": "Class 'TaggedCommitVersionStrategy' is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 13, - "startColumn": 23, - "charOffset": 409, - "charLength": 27, - "snippet": { - "text": "TaggedCommitVersionStrategy" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 11, - "startColumn": 1, - "charOffset": 319, - "charLength": 173, - "snippet": { - "text": "/// Increments if the tag is not the current commit.\n///
\ninternal sealed class TaggedCommitVersionStrategy(\n ILog log,\n Lazy contextLazy," - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d967b3fae2f6c018", - "equalIndicator/v1": "2df185ac94ad6c05efc2fb1b76cd20af362ffd450a47b703bb7dc4d31038aecf" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "UnusedType.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Class 'TrackReleaseBranchesVersionStrategy' is never used", - "markdown": "Class 'TrackReleaseBranchesVersionStrategy' is never used" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 10, - "startColumn": 23, - "charOffset": 235, - "charLength": 35, - "snippet": { - "text": "TrackReleaseBranchesVersionStrategy" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "charOffset": 171, - "charLength": 179, - "snippet": { - "text": "namespace GitVersion.VersionCalculation;\n\ninternal sealed class TrackReleaseBranchesVersionStrategy(\n Lazy contextLazy,\n IRepositoryStore repositoryStore," - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b4f244eb64615685", - "equalIndicator/v1": "b63af6c15c019a9c52843e65463894bda0c76e2ebfb309105acccc5db97bedb4" - }, - "baselineState": "unchanged", - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault", - "kind": "fail", - "level": "note", - "message": { - "text": "Some values of the enum are not processed inside switch: Inherit", - "markdown": "Some values of the enum are not processed inside switch: Inherit" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Extensions/IncrementStrategyExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 5, - "startColumn": 92, - "charOffset": 175, - "charLength": 6, - "snippet": { - "text": "switch" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 3, - "startColumn": 1, - "charOffset": 34, - "charLength": 206, - "snippet": { - "text": "public static class IncrementStrategyExtensions\n{\n public static VersionField ToVersionField(this IncrementStrategy strategy) => strategy switch\n {\n IncrementStrategy.None => VersionField.None," - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "1ac30133f4a78181", - "equalIndicator/v1": "9be1d124e5d238645ce52708262f518ad3f9f4177c6a2da2044e3143590df0db" - }, - "baselineState": "new", - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - } - ], - "automationDetails": { - "id": "GitVersion/qodana/2025-04-24", - "guid": "cc99868b-5843-4366-856f-fdd3074dad26", - "properties": { - "jobUrl": "https://github.com/GitTools/GitVersion/actions/runs/14649015427", - "analysisKind": "regular" - } - }, - "newlineSequences": [ - "\r\n", - "\n" - ], - "properties": { - "qodana.promo.results": [ - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 17, - "startColumn": 31, - "charOffset": 633, - "charLength": 5, - "snippet": { - "text": "init;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 15, - "startColumn": 1, - "charOffset": 561, - "charLength": 119, - "snippet": { - "text": " new(x => x.Name, x => x.Number);\n\n public string Name { get; init; }\n\n public long? Number { get; init; }" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "39b1096331f5a6c8", - "equalIndicator/v1": "07a7b31b43b99bfe0c26afff61e4b0f77109d932a5cdc8f28e9061154276c7b6" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 14, - "startColumn": 44, - "charOffset": 335, - "charLength": 14, - "snippet": { - "text": "internal init;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 12, - "startColumn": 1, - "charOffset": 276, - "charLength": 97, - "snippet": { - "text": "\n [Required]\n public ITaskItem[] CompileFiles { get; internal init; } = [];\n\n [Required]" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b9242d297fc3a345", - "equalIndicator/v1": "5ac45d68c9deae77a0676e6f36c18fe17b6d8a1261a8d8301018251345a9c3d7" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 31, - "startColumn": 43, - "charOffset": 894, - "charLength": 5, - "snippet": { - "text": "init;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 29, - "startColumn": 1, - "charOffset": 794, - "charLength": 150, - "snippet": { - "text": " public long CommitsSinceVersionSource { get; init; }\n\n public long UncommittedChanges { get; init; }\n\n public SemanticVersionBuildMetaData()" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "945534524a3ecb00", - "equalIndicator/v1": "963653db6db79949c03af1d532a9e55bc25bff64c3ebae3928847676f6cbee01" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "AutoPropertyCanBeMadeGetOnly.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Auto-property can be made get-only", - "markdown": "Auto-property can be made get-only" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 52, - "charOffset": 733, - "charLength": 5, - "snippet": { - "text": "init;" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 642, - "charLength": 165, - "snippet": { - "text": " public long? Number { get; init; }\n\n public bool PromoteTagEvenIfNameIsEmpty { get; init; }\n\n public SemanticVersionPreReleaseTag() => Name = string.Empty;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "b1e31eb5a46c5488", - "equalIndicator/v1": "f2380853e2e0a368b92041f47e42e69ff59b1ab8276af3e4c6d7876e721e903e" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "CA1822", - "kind": "fail", - "level": "note", - "message": { - "text": "Member 'FromJson' does not access instance data and can be marked as static", - "markdown": "Member 'FromJson' does not access instance data and can be marked as static" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Output/Serializer/VersionVariableSerializer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 10, - "startColumn": 32, - "charOffset": 285, - "charLength": 8, - "snippet": { - "text": "FromJson" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "charOffset": 158, - "charLength": 210, - "snippet": { - "text": "internal class VersionVariableSerializer(IFileSystem fileSystem) : IVersionVariableSerializer\n{\n public GitVersionVariables FromJson(string json)\n {\n var serializeOptions = JsonSerializerOptions();" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Output", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f5b3f2f4c3239efc", - "equalIndicator/v1": "1200334ba035fbe3aa0c822c791d74b4c1ba606802c21aca6551b04f37a0d2a9" - }, - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeMadeStatic.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'FromJson' can be made static", - "markdown": "Method 'FromJson' can be made static" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Output/Serializer/VersionVariableSerializer.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 10, - "startColumn": 32, - "charOffset": 285, - "charLength": 8, - "snippet": { - "text": "FromJson" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "charOffset": 158, - "charLength": 210, - "snippet": { - "text": "internal class VersionVariableSerializer(IFileSystem fileSystem) : IVersionVariableSerializer\n{\n public GitVersionVariables FromJson(string json)\n {\n var serializeOptions = JsonSerializerOptions();" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Output", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d0162cfd80034eca", - "equalIndicator/v1": "73e075508fa3cbc3c31932c3d8f6071e21c10a5115a1398bb75174d763537d46" - }, - "properties": { - "ideaSeverity": "TYPO", - "qodanaSeverity": "Low", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetBranchSpecificLabel' can be made private", - "markdown": "Method 'GetBranchSpecificLabel' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Extensions/ConfigurationExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 80, - "startColumn": 5, - "charOffset": 3601, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 78, - "startColumn": 1, - "charOffset": 3500, - "charLength": 251, - "snippet": { - "text": " => GetBranchSpecificLabel(configuration, branchName.WithoutOrigin, branchNameOverride);\n\n public static string? GetBranchSpecificLabel(\n this EffectiveConfiguration configuration, string? branchName, string? branchNameOverride)\n {" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3fa24d0f0642f9f7", - "equalIndicator/v1": "07f27f91c4ae9f1e135bc1acf3fdc7a6e27e5cc17691d895c26651ee7919b5ac" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithUpdateBuildNumber' can be made private", - "markdown": "Method 'WithUpdateBuildNumber' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 193, - "startColumn": 5, - "charOffset": 6597, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 191, - "startColumn": 1, - "charOffset": 6586, - "charLength": 119, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithUpdateBuildNumber(bool value)\n {\n this.updateBuildNumber = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f4cdb250e446d78c", - "equalIndicator/v1": "162dc3f8ebaf56ace070dc004cdb6c7aef4f713e104e8acf36ec6d4840918519" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreventIncrementOfMergedBranch' can be made private", - "markdown": "Method 'WithPreventIncrementOfMergedBranch' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 260, - "startColumn": 5, - "charOffset": 8891, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 258, - "startColumn": 1, - "charOffset": 8880, - "charLength": 146, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithPreventIncrementOfMergedBranch(bool? value)\n {\n this.preventIncrementOfMergedBranch = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a438203fe493332f", - "equalIndicator/v1": "17501f1b3cb4687f5bf4871cd3cee6f28a0fb9277cee5c439001d9f564e3a130" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'IsLabeledWith' can be made private", - "markdown": "Method 'IsLabeledWith' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersion.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 24, - "startColumn": 5, - "charOffset": 623, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 22, - "startColumn": 1, - "charOffset": 549, - "charLength": 246, - "snippet": { - "text": " public SemanticVersionBuildMetaData BuildMetaData { get; init; }\n\n public bool IsLabeledWith(string value) => PreReleaseTag.HasTag() && PreReleaseTag.Name.IsEquivalentTo(value);\n\n public bool IsMatchForBranchSpecificLabel(string? value)" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "a204ee13475fb9ad", - "equalIndicator/v1": "1a1388cf56fd9986badb2156d80a3858fa545384a3e7b13b71eeb4519ebcdb4a" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithNoBumpMessage' can be made private", - "markdown": "Method 'WithNoBumpMessage' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 169, - "startColumn": 5, - "charOffset": 5913, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 167, - "startColumn": 1, - "charOffset": 5902, - "charLength": 114, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithNoBumpMessage(string? value)\n {\n this.noBumpMessage = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "53f8f91c63188b63", - "equalIndicator/v1": "1d04599576977cee54240cb129d4b3b7e3d60d038e1e913fa0b7fe1e6e3d9409" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'ToString' can be made private", - "markdown": "Method 'ToString' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 105, - "startColumn": 5, - "charOffset": 4019, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 103, - "startColumn": 1, - "charOffset": 3958, - "charLength": 166, - "snippet": { - "text": " public override string ToString() => ToString(\"t\");\n\n public string ToString(string format) => ToString(format, CultureInfo.CurrentCulture);\n\n /// " - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "306f43e59749c8c7", - "equalIndicator/v1": "1e655491f52cd8d75af8440cfe48b2d777ca6fa88da809b6ea67c61e8bad258c" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Property 'Context' can be made private", - "markdown": "Property 'Context' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 15, - "startColumn": 5, - "charOffset": 509, - "charLength": 9, - "snippet": { - "text": "protected" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 13, - "startColumn": 1, - "charOffset": 416, - "charLength": 257, - "snippet": { - "text": " private readonly Lazy versionContext = versionContext.NotNull();\n\n protected GitVersionContext Context => this.versionContext.Value;\n\n protected SemanticVersionBuildMetaData CreateVersionBuildMetaData(ICommit? baseVersionSource)" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "edfbdbeba3db16ef", - "equalIndicator/v1": "25413b6464d5050748f884f073d7dd63c750b68d47aba1fb4936a3946f013179" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'DumpGraph' can be made private", - "markdown": "Method 'DumpGraph' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 65, - "startColumn": 5, - "charOffset": 2479, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 63, - "startColumn": 1, - "charOffset": 2415, - "charLength": 254, - "snippet": { - "text": " => DumpGraph(repository.Path, writer, maxCommits);\n\n public static void DumpGraph(this IRepository repository, Action? writer = null, int? maxCommits = null)\n => DumpGraph(repository.ToGitRepository().Path, writer, maxCommits);\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f66041ca3f62af8b", - "equalIndicator/v1": "3cec01000c68144291c9e0f834ba4490e64a85767ef5b82b2fdc29cdf41f8406" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'CompareTo' can be made private", - "markdown": "Method 'CompareTo' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersion.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 221, - "startColumn": 5, - "charOffset": 7523, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 219, - "startColumn": 1, - "charOffset": 7423, - "charLength": 201, - "snippet": { - "text": " public int CompareTo(SemanticVersion? value) => CompareTo(value, includePreRelease: true);\n\n public int CompareTo(SemanticVersion? value, bool includePreRelease)\n {\n if (value == null)" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "dc198b8584f3d313", - "equalIndicator/v1": "59ffba36bf2f386e1e0d7b4bc0aaab48fabaa6d4afb5965b1cb95fef23992adc" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetCurrentDirectory' can be made private", - "markdown": "Method 'GetCurrentDirectory' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 74, - "startColumn": 9, - "charOffset": 3205, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 72, - "startColumn": 1, - "charOffset": 3142, - "charLength": 291, - "snippet": { - "text": " : StringComparison.OrdinalIgnoreCase;\n\n public static string GetCurrentDirectory() => AppContext.BaseDirectory ?? throw new InvalidOperationException();\n\n public static string GetTempPathLegacy() => fileSystem.Path.GetTempPath().TrimEnd(DirectorySeparatorChar);" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "54963d95d4a2b1c2", - "equalIndicator/v1": "6732e23188eba6b8c688b733a53c5a6787409739d46b248f42458ac8e747df96" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetFullPath' can be made private", - "markdown": "Method 'GetFullPath' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 108, - "startColumn": 9, - "charOffset": 4537, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 106, - "startColumn": 1, - "charOffset": 4432, - "charLength": 258, - "snippet": { - "text": " public static string? GetExtension(string? path) => fileSystem.Path.GetExtension(path);\n\n public static string GetFullPath(string? path) => fileSystem.Path.GetFullPath(path!);\n\n public static string Combine(string? path1, string? path2)" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9a5d1a2ad5c4e5b8", - "equalIndicator/v1": "7bd476cf03181321fa398a10395699e96bf050ce5a5ec1162fe7964d43feacb1" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithIsReleaseBranch' can be made private", - "markdown": "Method 'WithIsReleaseBranch' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 308, - "startColumn": 5, - "charOffset": 10357, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 306, - "startColumn": 1, - "charOffset": 10346, - "charLength": 116, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithIsReleaseBranch(bool? value)\n {\n this.isReleaseBranch = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d841d600090e0246", - "equalIndicator/v1": "7c856ca43421ba359bbd8a46382b230df0b206e8b49a4c467035ef80c298b36a" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetTempPath' can be made private", - "markdown": "Method 'GetTempPath' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 77, - "startColumn": 9, - "charOffset": 3442, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 75, - "startColumn": 1, - "charOffset": 3318, - "charLength": 218, - "snippet": { - "text": "\n public static string GetTempPathLegacy() => fileSystem.Path.GetTempPath().TrimEnd(DirectorySeparatorChar);\n public static string GetTempPath()\n {\n var tempPath = GetCurrentDirectory();" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "e9bbe0a232d1f2bb", - "equalIndicator/v1": "81aff2ce6987502feac67c101fd449948663144ad455a51e46285cd218675829" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithRegularExpression' can be made private", - "markdown": "Method 'WithRegularExpression' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 296, - "startColumn": 5, - "charOffset": 10017, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 294, - "startColumn": 1, - "charOffset": 10006, - "charLength": 122, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithRegularExpression(string? value)\n {\n this.regularExpression = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "70211adbe88a21f9", - "equalIndicator/v1": "8697076173547d2573eff685a6e8048b90a53a6f77cb7f4fe749f7533fa3dc72" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreventIncrementWhenCurrentCommitTagged' can be made private", - "markdown": "Method 'WithPreventIncrementWhenCurrentCommitTagged' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 272, - "startColumn": 5, - "charOffset": 9277, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 270, - "startColumn": 1, - "charOffset": 9266, - "charLength": 164, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithPreventIncrementWhenCurrentCommitTagged(bool? value)\n {\n this.preventIncrementWhenCurrentCommitTagged = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9fcdeb835eacbafa", - "equalIndicator/v1": "8bed8fd8ed8cd10ae282611bde7cf3db2b2429b2c2094767b8869c59be508a56" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreReleaseWeight' can be made private", - "markdown": "Method 'WithPreReleaseWeight' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 320, - "startColumn": 5, - "charOffset": 10673, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 318, - "startColumn": 1, - "charOffset": 10662, - "charLength": 117, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithPreReleaseWeight(int? value)\n {\n this.preReleaseWeight = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fa34c0dd386ebf63", - "equalIndicator/v1": "8dd744fa23bef7b300485157af43879871db8b2ee29201d3fc0e7ea51081448f" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithTracksReleaseBranches' can be made private", - "markdown": "Method 'WithTracksReleaseBranches' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 302, - "startColumn": 5, - "charOffset": 10184, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 300, - "startColumn": 1, - "charOffset": 10173, - "charLength": 128, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithTracksReleaseBranches(bool? value)\n {\n this.tracksReleaseBranches = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "72e585b50d1d68cd", - "equalIndicator/v1": "8edc4dd166cb4befd91c6b9c0352e5ba4e08dee7b4c14811073693f08fd5c1b3" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithShas' can be made private", - "markdown": "Method 'WithShas' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 29, - "startColumn": 5, - "charOffset": 672, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 27, - "startColumn": 1, - "charOffset": 661, - "charLength": 109, - "snippet": { - "text": " }\n\n public IgnoreConfigurationBuilder WithShas(HashSet value)\n {\n this.shas = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "79d7694be7303156", - "equalIndicator/v1": "9191b831b7a6c97d7f2befa29faf57850e20a6e19d4825d9a7f969ed27bfc28a" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithTrackMergeTarget' can be made private", - "markdown": "Method 'WithTrackMergeTarget' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 278, - "startColumn": 5, - "charOffset": 9486, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 276, - "startColumn": 1, - "charOffset": 9475, - "charLength": 118, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithTrackMergeTarget(bool? value)\n {\n this.trackMergeTarget = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "07c819bfc6ae3ff8", - "equalIndicator/v1": "932a115609e38ccdc5b15021ffd491e1dc5465c72c341bd300126021849a5403" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreventIncrementWhenBranchMerged' can be made private", - "markdown": "Method 'WithPreventIncrementWhenBranchMerged' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 266, - "startColumn": 5, - "charOffset": 9082, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 264, - "startColumn": 1, - "charOffset": 9071, - "charLength": 150, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithPreventIncrementWhenBranchMerged(bool? value)\n {\n this.preventIncrementWhenBranchMerged = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "f8c7df635da2b8ad", - "equalIndicator/v1": "9d1091b9ff2d424c0812ed314a87cfd29c7f6eeecf559efc306e108cc1c4a2ab" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'DiscoverRepository' can be made private", - "markdown": "Method 'DiscoverRepository' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 51, - "startColumn": 5, - "charOffset": 1734, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 49, - "startColumn": 1, - "charOffset": 1723, - "charLength": 149, - "snippet": { - "text": " }\n\n public static void DiscoverRepository(this IServiceProvider sp)\n {\n var gitRepository = sp.GetRequiredService();" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "3b81dbc907dc82f9", - "equalIndicator/v1": "a4265a9c06bacc2838ccd8059ca6d68eacce0b3e23d5fd78b54e6a812bca24b2" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'GetVersion' can be made private", - "markdown": "Method 'GetVersion' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 68, - "startColumn": 5, - "charOffset": 2674, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 66, - "startColumn": 1, - "charOffset": 2592, - "charLength": 343, - "snippet": { - "text": " => DumpGraph(repository.ToGitRepository().Path, writer, maxCommits);\n\n public static GitVersionVariables GetVersion(this RepositoryFixtureBase fixture, IGitVersionConfiguration? configuration = null,\n IRepository? repository = null, string? commitId = null, bool onlyTrackedBranches = true, string? targetBranch = null)\n {" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "318ac156b1657713", - "equalIndicator/v1": "a4afd1b08385395f0807fd8f3fc04f39d8fc8314a24009a2342a71b99c37769a" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Property 'DirectorySeparatorChar' can be made private", - "markdown": "Property 'DirectorySeparatorChar' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 67, - "startColumn": 9, - "charOffset": 2878, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 65, - "startColumn": 1, - "charOffset": 2808, - "charLength": 228, - "snippet": { - "text": " {\n public static string NewLine => SysEnv.NewLine;\n public static char DirectorySeparatorChar => fileSystem.Path.DirectorySeparatorChar;\n\n private static readonly StringComparison OsDependentComparison =" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "47e20dd81572c251", - "equalIndicator/v1": "a4f011d97b4f80ac560ed9ef839d4f3c53a31f9e284590ecb9000c1363ff5b8e" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithAssemblyVersioningFormat' can be made private", - "markdown": "Method 'WithAssemblyVersioningFormat' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 121, - "startColumn": 5, - "charOffset": 4516, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 119, - "startColumn": 1, - "charOffset": 4505, - "charLength": 136, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithAssemblyVersioningFormat(string? value)\n {\n this.assemblyVersioningFormat = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "65ec659931f70250", - "equalIndicator/v1": "a9ff1f6afad5baa1879308d0688fc50f93231148751f22ab0382a727857f2c0c" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Constructor 'SemanticVersionPreReleaseTag' can be made private", - "markdown": "Constructor 'SemanticVersionPreReleaseTag' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 23, - "startColumn": 5, - "charOffset": 746, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 21, - "startColumn": 1, - "charOffset": 682, - "charLength": 227, - "snippet": { - "text": " public bool PromoteTagEvenIfNameIsEmpty { get; init; }\n\n public SemanticVersionPreReleaseTag() => Name = string.Empty;\n\n public SemanticVersionPreReleaseTag(string name, long? number, bool promoteTagEvenIfNameIsEmpty)" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "4a42a72507675ee0", - "equalIndicator/v1": "cda0e8d0b89f3b9e17c4a83e1e9316a95447c3eb3c58bef1794d599c5bb8d116" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Property 'PromoteTagEvenIfNameIsEmpty' can be made private", - "markdown": "Property 'PromoteTagEvenIfNameIsEmpty' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 21, - "startColumn": 5, - "charOffset": 686, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 19, - "startColumn": 1, - "charOffset": 642, - "charLength": 165, - "snippet": { - "text": " public long? Number { get; init; }\n\n public bool PromoteTagEvenIfNameIsEmpty { get; init; }\n\n public SemanticVersionPreReleaseTag() => Name = string.Empty;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "304d08da85634319", - "equalIndicator/v1": "ce384c072aedd7cfb73948dda11dcd04749e99d41826a45d7df82e6ad841b651" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Property 'RefSpecs' can be made private", - "markdown": "Property 'RefSpecs' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.LibGit2Sharp/Git/Remote.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 20, - "startColumn": 5, - "charOffset": 720, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 18, - "startColumn": 1, - "charOffset": 668, - "charLength": 107, - "snippet": { - "text": " public string Url => this.innerRemote.Url;\n\n public IEnumerable RefSpecs\n {\n get" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.LibGit2Sharp", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0b42b6fe81d50fee", - "equalIndicator/v1": "d9b036319212323201c50ca1c4b114e7cfd397a81f5cadd17e9763b36e145fec" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithVersionInBranchPattern' can be made private", - "markdown": "Method 'WithVersionInBranchPattern' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 139, - "startColumn": 5, - "charOffset": 5044, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 137, - "startColumn": 1, - "charOffset": 5033, - "charLength": 132, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithVersionInBranchPattern(string? value)\n {\n this.versionInBranchPattern = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "8348fe093daaf082", - "equalIndicator/v1": "da3a2b7bb813af9c8beb4477fcf5c07fc1e5fc4e6d6eeccd8de2e690e3fdeaa7" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'ToGitRepository' can be made private", - "markdown": "Method 'ToGitRepository' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 161, - "startColumn": 5, - "charOffset": 6451, - "charLength": 8, - "snippet": { - "text": "internal" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 159, - "startColumn": 1, - "charOffset": 6440, - "charLength": 154, - "snippet": { - "text": " }\n\n internal static IGitRepository ToGitRepository(this IRepository repository)\n {\n var gitRepository = new GitRepository(new NullLog());" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "aa5d8e1a3910919c", - "equalIndicator/v1": "de8f75ffee4f641447c9483347e33e7705e4b9ef7d5131112ae2cdd416322ab0" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithIsMainBranch' can be made private", - "markdown": "Method 'WithIsMainBranch' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 314, - "startColumn": 5, - "charOffset": 10518, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 312, - "startColumn": 1, - "charOffset": 10507, - "charLength": 110, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithIsMainBranch(bool? value)\n {\n this.isMainBranch = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "0625bb954b3755eb", - "equalIndicator/v1": "e1537a990b34403b4d0d5046b725d803e2a199c4fba0bf04dd25e4ce99f3002b" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'Combine' can be made private", - "markdown": "Method 'Combine' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/Helpers/FileSystemHelper.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 125, - "startColumn": 9, - "charOffset": 5097, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 123, - "startColumn": 1, - "charOffset": 5078, - "charLength": 164, - "snippet": { - "text": " }\n\n public static string Combine(string? path1, string? path2, string? path3)\n {\n ArgumentException.ThrowIfNullOrWhiteSpace(path1);" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Testing", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "9efd3542863b65cb", - "equalIndicator/v1": "e8a2e96804c2dd49761635866a90126621007fc0bc2e3d505ebc6fef0f03383c" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithTrackMergeMessage' can be made private", - "markdown": "Method 'WithTrackMergeMessage' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 284, - "startColumn": 5, - "charOffset": 9649, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 282, - "startColumn": 1, - "charOffset": 9638, - "charLength": 120, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithTrackMergeMessage(bool? value)\n {\n this.trackMergeMessage = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "c12445c5a92fea37", - "equalIndicator/v1": "fb7a2ab2c07c95d3f2a1c47d6f74f1cc0e45c77007c49f7ea9e387cc7b4ffb8d" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBePrivate.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Field 'repositoryStore' can be made private", - "markdown": "Field 'repositoryStore' can be made private" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 12, - "startColumn": 5, - "charOffset": 335, - "charLength": 9, - "snippet": { - "text": "protected" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 10, - "startColumn": 1, - "charOffset": 280, - "charLength": 224, - "snippet": { - "text": "{\n protected readonly ILog log = log.NotNull();\n protected readonly IRepositoryStore repositoryStore = repositoryStore.NotNull();\n private readonly Lazy versionContext = versionContext.NotNull();\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Core", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d774cc88ea0885cc", - "equalIndicator/v1": "fc453f975365798d2caf47bd8a217f79da184734fe3652e261743ccf2cb2fb7c" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithIsSourceBranchFor' can be made protected", - "markdown": "Method 'WithIsSourceBranchFor' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 102, - "startColumn": 5, - "charOffset": 2934, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 100, - "startColumn": 1, - "charOffset": 2923, - "charLength": 152, - "snippet": { - "text": " }\n\n public virtual BranchConfigurationBuilder WithIsSourceBranchFor(IEnumerable values)\n {\n WithIsSourceBranchFor([.. values]);" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "907339a47a48aba5", - "equalIndicator/v1": "26daf9e7e80d3d2b5b915dd59c36b06265526229dc1ce38f2c3d1c54476f930d" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Constant 'MainBranch' can be made protected", - "markdown": "Constant 'MainBranch' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Core.Tests/Helpers/TestBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 10, - "startColumn": 5, - "charOffset": 206, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 8, - "startColumn": 1, - "charOffset": 178, - "charLength": 178, - "snippet": { - "text": "public class TestBase\n{\n public const string MainBranch = \"main\";\n\n protected static IServiceProvider ConfigureServices(Action? overrideServices = null)" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.MsBuild.Tests", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "d8605a834ce1f2ec", - "equalIndicator/v1": "36bec50ba3e6870ccade82084537061038c70a64dee81529a4d3f0e1a0f37a8a" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithConfiguration' can be made protected", - "markdown": "Method 'WithConfiguration' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 326, - "startColumn": 5, - "charOffset": 10835, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 324, - "startColumn": 1, - "charOffset": 10824, - "charLength": 165, - "snippet": { - "text": " }\n\n public TConfigurationBuilder WithConfiguration(IGitVersionConfiguration value)\n {\n WithAssemblyVersioningScheme(value.AssemblyVersioningScheme);" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "50524bf965a4b8da", - "equalIndicator/v1": "60b9a3ae23943157b539c2d72261df7557fb4ac690984f6a78a697bc179c1db9" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithSourceBranches' can be made protected", - "markdown": "Method 'WithSourceBranches' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 90, - "startColumn": 5, - "charOffset": 2600, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 88, - "startColumn": 1, - "charOffset": 2589, - "charLength": 146, - "snippet": { - "text": " }\n\n public virtual BranchConfigurationBuilder WithSourceBranches(IEnumerable values)\n {\n WithSourceBranches([.. values]);" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "99829247586fa2d8", - "equalIndicator/v1": "9b5933600024cb61754ddb6cf50acd68e820744494fc03e9df4381f5fb2c5dcc" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithPreventIncrementWhenBranchMerged' can be made protected", - "markdown": "Method 'WithPreventIncrementWhenBranchMerged' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 54, - "startColumn": 5, - "charOffset": 1558, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 52, - "startColumn": 1, - "charOffset": 1547, - "charLength": 163, - "snippet": { - "text": " }\n\n public virtual BranchConfigurationBuilder WithPreventIncrementWhenBranchMerged(bool? value)\n {\n this.preventIncrementWhenBranchMerged = value;" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "71e7d9b29242c60a", - "equalIndicator/v1": "b858e2f3b626a01e808428a2774ff97c1b17fcb757f23f4f64398e392b81dd3e" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - }, - { - "ruleId": "MemberCanBeProtected.Global", - "kind": "fail", - "level": "note", - "message": { - "text": "Method 'WithBranch' can be made protected", - "markdown": "Method 'WithBranch' can be made protected" - }, - "locations": [ - { - "physicalLocation": { - "artifactLocation": { - "uri": "GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs", - "uriBaseId": "SRCROOT" - }, - "region": { - "startLine": 229, - "startColumn": 5, - "charOffset": 7788, - "charLength": 6, - "snippet": { - "text": "public" - }, - "sourceLanguage": "C#" - }, - "contextRegion": { - "startLine": 227, - "startColumn": 1, - "charOffset": 7777, - "charLength": 169, - "snippet": { - "text": " }\n\n public BranchConfigurationBuilder WithBranch(string value)\n => this.branchConfigurationBuilders.GetOrAdd(value, () => BranchConfigurationBuilder.New);\n" - }, - "sourceLanguage": "C#" - } - }, - "logicalLocations": [ - { - "fullyQualifiedName": "GitVersion.Configuration", - "kind": "module" - } - ] - } - ], - "partialFingerprints": { - "equalIndicator/v2": "fbde394b0bdaac89", - "equalIndicator/v1": "e8d7c2d9d95e73a87b377c0050c29d16bfae58ce8c8bb67b334a49da873d4650" - }, - "properties": { - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate", - "tags": [ - "C#", - ".NET 8.0", - ".NET 9.0" - ] - } - } - ], - "configProfile": "starter", - "deviceId": "200820300000000-3e47-7fab-260c-3266c4769609", - "qodanaNewResultSummary": { - "low": 1, - "total": 1 - } - } - } - ] -} \ No newline at end of file diff --git a/qodana.yaml b/qodana.yaml deleted file mode 100644 index 12195980d2..0000000000 --- a/qodana.yaml +++ /dev/null @@ -1,120 +0,0 @@ -#-------------------------------------------------------------------------------# -# Qodana analysis is configured by qodana.yaml file # -# https://www.jetbrains.com/help/qodana/qodana-yaml.html # -#-------------------------------------------------------------------------------# -version: "1.0" -#Specify the inspection profile for code analysis -profile: - name: qodana.starter -linter: jetbrains/qodana-cdnet:latest -include: - - name: ConvertIfStatementToReturnStatement - - name: ConvertIfStatementToConditionalTernaryExpression - - name: AutoPropertyCanBeMadeGetOnly - - name: CanReplaceCastWithLambdaReturnType - - name: ChangeFieldTypeToSystemThreadingLock - - name: ConvertIfStatementToSwitchStatement - - name: ConvertToConstant.Local - - name: DuplicatedSequentialIfBodies - - name: InlineTemporaryVariable - - name: InvertIf - - name: UseVerbatimString - - name: MemberCanBePrivate - - name: MemberCanBeProtected - - name: MergeIntoPattern - - name: UnusedMethodReturnValue.Global - - name: EditorConfigNoMatchingFiles - - name: PreferConcreteValueOverDefault - - name: PropertyCanBeMadeInitOnly.Global - - name: MoveLocalFunctionAfterJumpStatement - - name: RedundantExplicitParamsArrayCreation - - name: RedundantOverload.Global - - name: RedundantStringInterpolation - - name: RedundantVerbatimStringPrefix - - name: ReplaceSubstringWithRangeIndexer - - name: RCS1001 - - name: RCS1003 - - name: RCS1123 - - name: SYSLIB1045 - - name: CA1826 - - name: RCS1256 - - name: RCS1118 - - name: RCS1077 - - name: RCS1205 - - name: RCS1214 - - name: RCS1249 - - name: RCS1192 - - name: SYSLIB1054 - - name: CA1512 - - name: CA1866 - - name: CA1859 - - name: RCS1246 - - name: CA1829 - - name: RCS1266 - - name: RCS1267 - - name: RCS1227 - - name: SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault - - name: SwitchStatementHandlesSomeKnownEnumValuesWithDefault - - name: RedundantAlwaysMatchSubpattern - - name: UnusedType.Global - - name: UnusedMemberInSuper.Global - - name: UnusedMember.Local - - name: EditorConfigKeyCorrectness - - name: UseCollectionCountProperty - - name: UseDiscardAssignment - - name: ArrangeNamespaceBody - - name: SuggestDiscardDeclarationVarStyle - - name: ArrangeTrailingCommaInMultilineLists - - name: ArrangeObjectCreationWhenTypeNotEvident - - name: UseRawString - - name: VirtualMemberNeverOverridden.Global - - name: ArrangeVarKeywordsInDeconstructingDeclaration - - name: SuggestVarOrType_BuiltInTypes - -#Enable inspections -#include: -# - name: - -#Disable inspections -exclude: - - name: LoopCanBeConvertedToQuery - - name: ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator - - name: ConvertIfStatementToConditionalTernaryExpression - paths: - - GitVersion.Core.Tests/IntegrationTests/AlignGitFlowWithMainlineVersionStrategy.cs - - GitVersion.Core.Tests/IntegrationTests/AlignGitHubFlowWithMainlineVersionStrategy.cs - - name: MemberCanBeProtected - paths: - - GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs - - GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs - - GitVersion.Core.Tests/Helpers/TestBase.cs - - name: MemberCanBePrivate - paths: - - GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs - - GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs - - GitVersion.Core/Helpers/FileSystemHelper.cs - - GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs - - GitVersion.Core/SemVer/SemanticVersion.cs - - GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs - - GitVersion.Core/Extensions/ConfigurationExtensions.cs - - GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs - - GitVersion.LibGit2Sharp/Git/Remote.cs - - name: AutoPropertyCanBeMadeGetOnly - paths: - - GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs - - GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs - - GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs - - name: UnusedType - paths: - - GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs - - GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs - - GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs -#Execute shell command before Qodana execution (Applied in CI/CD pipeline) -bootstrap: curl -fsSL https://dot.net/v1/dotnet-install.sh | bash -s -- --jsonfile /data/project/global.json -i /usr/share/dotnet && dotnet build src/GitVersion.slnx -dotnet: - frameworks: net10.0 - solution: src/GitVersion.slnx - -#Install IDE plugins before Qodana execution (Applied in CI/CD pipeline) -#plugins: -# - id: #(plugin id can be found at https://plugins.jetbrains.com) From 99908c0c67a8529cbb21bea743744506c2e750f1 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Sat, 14 Mar 2026 15:23:26 +0100 Subject: [PATCH 209/358] ci(workflows): Update GITHUB_TOKEN to use github.token context --- .github/workflows/_publish.yml | 2 +- .github/workflows/docs.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index ba7c61550c..6072ab3207 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -15,7 +15,7 @@ jobs: taskName: [ NuGet, Chocolatey ] env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ github.token }} NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} CHOCOLATEY_API_KEY: ${{ secrets.CHOCOLATEY_API_KEY }} steps: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 3869fadea8..d4eb0f2716 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -117,7 +117,7 @@ jobs: name: '[Remark Lint]' uses: reviewdog/action-remark-lint@v5 with: - github_token: ${{ secrets.GITHUB_TOKEN }} + github_token: ${{ github.token }} reporter: ${{ steps.reporter.outputs.value }} publish: From 2b049d4c80e2a07984c8ba73510b665666afe981 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 16 Mar 2026 11:15:46 +0100 Subject: [PATCH 210/358] ci(workflows): Integrate DockerHub credential action and simplify publishing conditions --- .github/workflows/_docker.yml | 20 ++++++++++++++----- .github/workflows/_docker_manifests.yml | 15 +++++++++++--- .github/workflows/ci.yml | 26 ++++++++++++++++++++----- 3 files changed, 48 insertions(+), 13 deletions(-) diff --git a/.github/workflows/_docker.yml b/.github/workflows/_docker.yml index 5bc5c8957c..c51a5ebb01 100644 --- a/.github/workflows/_docker.yml +++ b/.github/workflows/_docker.yml @@ -13,6 +13,9 @@ on: dotnet_versions: required: true type: string + publish_images: + required: true + type: boolean env: DOTNET_INSTALL_DIR: "./.dotnet" @@ -50,21 +53,28 @@ jobs: uses: ./.github/actions/docker-setup - name: Docker Test - if: success() && github.event_name == 'pull_request' || github.repository_owner != 'GitTools' + if: success() && inputs.publish_images == false uses: ./.github/actions/docker-test with: arch: ${{ inputs.arch }} docker_distro: ${{ matrix.docker_distro }} dotnet_version: ${{ matrix.dotnet_version }} + - + name: Load DockerHub credentials + id: dockerhub-creds + if: success() && inputs.publish_images + uses: gittools/cicd/dockerhub-creds@main + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Docker Publish - if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' + if: success() && inputs.publish_images uses: ./.github/actions/docker-publish with: arch: ${{ inputs.arch }} docker_distro: ${{ matrix.docker_distro }} dotnet_version: ${{ matrix.dotnet_version }} - docker_registry_username: ${{ secrets.DOCKER_USERNAME }} - docker_registry_password: ${{ secrets.DOCKER_PASSWORD }} + docker_registry_username: ${{ steps.dockerhub-creds.outputs.docker_username }} + docker_registry_password: ${{ steps.dockerhub-creds.outputs.docker_password }} github_registry_username: ${{ github.repository_owner }} - github_registry_password: ${{ github.token }} \ No newline at end of file + github_registry_password: ${{ github.token }} diff --git a/.github/workflows/_docker_manifests.yml b/.github/workflows/_docker_manifests.yml index 59876605e2..691e619c40 100644 --- a/.github/workflows/_docker_manifests.yml +++ b/.github/workflows/_docker_manifests.yml @@ -7,6 +7,9 @@ on: dotnet_versions: required: true type: string + publish_manifests: + required: true + type: boolean env: DOTNET_INSTALL_DIR: "./.dotnet" @@ -17,6 +20,7 @@ permissions: jobs: manifest: + if: inputs.publish_manifests name: ${{ matrix.docker_distro }} - net${{ matrix.dotnet_version }} runs-on: ubuntu-24.04 strategy: @@ -36,14 +40,19 @@ jobs: - name: Set up Docker uses: ./.github/actions/docker-setup + - + name: Load DockerHub credentials + id: dockerhub-creds + uses: gittools/cicd/dockerhub-creds@main + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Docker Manifests - if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' uses: ./.github/actions/docker-manifests with: docker_distro: ${{ matrix.docker_distro }} dotnet_version: ${{ matrix.dotnet_version }} - docker_registry_username: ${{ secrets.DOCKER_USERNAME }} - docker_registry_password: ${{ secrets.DOCKER_PASSWORD }} + docker_registry_username: ${{ steps.dockerhub-creds.outputs.docker_username }} + docker_registry_password: ${{ steps.dockerhub-creds.outputs.docker_password }} github_registry_username: ${{ github.repository_owner }} github_registry_password: ${{ github.token }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 452a7a5a4a..a5adcd0f42 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -101,6 +101,7 @@ jobs: arch: ${{ matrix.arch }} docker_distros: ${{ needs.prepare.outputs.docker_distros }} dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }} + publish_images: ${{ github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' }} secrets: inherit docker_linux_manifests: @@ -110,6 +111,7 @@ jobs: with: docker_distros: ${{ needs.prepare.outputs.docker_distros }} dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }} + publish_manifests: ${{ github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' }} secrets: inherit publish: @@ -130,6 +132,7 @@ jobs: issues: write env: GITHUB_TOKEN: ${{ github.token }} + CAN_PUBLISH: ${{ github.event_name == 'repository_dispatch' }} steps: - name: Checkout @@ -144,16 +147,23 @@ jobs: uses: ./.github/actions/artifacts-restore - name: Attetstation - if: github.event_name == 'repository_dispatch' + if: env.CAN_PUBLISH == 'true' uses: ./.github/actions/artifacts-attest + - + name: Load DockerHub credentials + id: dockerhub-creds + if: env.CAN_PUBLISH == 'true' + uses: gittools/cicd/dockerhub-creds@main + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: DockerHub Publish Readme - if: github.event_name == 'repository_dispatch' + if: env.CAN_PUBLISH == 'true' shell: pwsh run: dotnet run/docker.dll --target=DockerHubReadmePublish env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + DOCKER_USERNAME: ${{ steps.dockerhub-creds.outputs.docker_username }} + DOCKER_PASSWORD: ${{ steps.dockerhub-creds.outputs.docker_password }} - name: '[Release]' shell: pwsh @@ -166,4 +176,10 @@ jobs: token: ${{ secrets.RELEASE_GITHUB_TOKEN }} repository: ${{ github.repository }} event-type: publish-release - client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "tag": "${{ github.event.client_payload.tag }}"}' + client-payload: | + { + "ref": "${{ github.ref }}", + "sha": "${{ github.sha }}", + "tag": "${{ github.event.client_payload.tag }}" + } + From b2616522b5c5e4133a1296c0c7d4a967bb694c28 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Mon, 16 Mar 2026 17:47:32 +0100 Subject: [PATCH 211/358] ci(workflows): Refactor secret passing and clarify tag variable --- .github/workflows/release.yml | 17 +++++++++++------ .github/workflows/winget.yml | 12 +++++++----- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 521ac0f921..262bf116e0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,21 +8,26 @@ jobs: name: Trigger ci flow runs-on: ubuntu-24.04 steps: - - + - name: Checkout uses: actions/checkout@v6 - - + - name: Get version id: get-version shell: pwsh run: | # Finding the version from release tag - $VERSION="${{ github.ref }}".Replace("refs/tags/", "") - "version=$VERSION" >> $env:GITHUB_OUTPUT - - + $TAG="${{ github.ref }}".Replace("refs/tags/", "") + "tag=$TAG" >> $env:GITHUB_OUTPUT + - uses: peter-evans/repository-dispatch@v4 with: token: ${{ secrets.RELEASE_GITHUB_TOKEN }} repository: ${{ github.repository }} event-type: ci-release - client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "tag": "${{ steps.get-version.outputs.version }}"}' \ No newline at end of file + client-payload: | + { + "ref": "${{ github.ref }}", + "sha": "${{ github.sha }}", + "tag": "${{ steps.get-version.outputs.tag }}" + } diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index f6ad004ed9..636500ac76 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -22,19 +22,21 @@ jobs: - name: Get version id: get-version shell: pwsh + env: + RELEASE_GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} run: | $version = "${{ github.event.client_payload.tag }}" if ($version -eq "") { $version = "${{ github.event.inputs.tag-name }}" } - + $url = "https://github.com/GitTools/GitVersion/releases/download/{0}/gitversion-win-{1}-{0}.zip" $urls = @(($url -f $version, "x64"), ($url -f $version, "arm64")) -Join " " - - $run_args = "update GitTools.GitVersion --version $version --urls $urls --token ${{ secrets.RELEASE_GITHUB_TOKEN }} --submit" + + $run_args = "update GitTools.GitVersion --version $version --urls $urls --token $env:RELEASE_GITHUB_TOKEN --submit" "version=$version" >> $env:GITHUB_OUTPUT "run_args=$run_args" >> $env:GITHUB_OUTPUT - + - uses: michidk/run-komac@v2.1.0 with: - args: '${{ steps.get-version.outputs.run_args }}' \ No newline at end of file + args: '${{ steps.get-version.outputs.run_args }}' From cf9bc204406958983160bbc3df0d2cdd2a0e1f4d Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 17 Mar 2026 00:41:18 +0100 Subject: [PATCH 212/358] ci(workflows): Integrate dedicated credential actions for publishing Retrieve NuGet and Chocolatey API keys via standardized actions from a secret management system. --- .github/workflows/_publish.yml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index 6072ab3207..47e445bccc 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -14,10 +14,6 @@ jobs: matrix: taskName: [ NuGet, Chocolatey ] - env: - GITHUB_TOKEN: ${{ github.token }} - NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} - CHOCOLATEY_API_KEY: ${{ secrets.CHOCOLATEY_API_KEY }} steps: - name: Checkout @@ -34,7 +30,24 @@ jobs: name: nuget path: ${{ github.workspace }}/artifacts/packages/nuget + - + name: Load NuGet credentials + id: nuget-creds + uses: gittools/cicd/nuget-creds@main + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + - + name: Load Chocolatey credentials + id: choco-creds + uses: gittools/cicd/choco-creds@main + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + - name: '[Publish]' shell: pwsh run: dotnet run/publish.dll --target=Publish${{ matrix.taskName }} + env: + GITHUB_TOKEN: ${{ github.token }} + NUGET_API_KEY: ${{ steps.nuget-creds.outputs.nuget_api_key }} + CHOCOLATEY_API_KEY: ${{ steps.choco-creds.outputs.choco_api_key }} From 80329d4223118c1ce0eed37186df53ef3917f1dd Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 17 Mar 2026 10:20:08 +0100 Subject: [PATCH 213/358] ci(workflows): Use github.token for repository dispatch and grant job write permission --- .github/workflows/ci.yml | 2 +- .github/workflows/release.yml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a5adcd0f42..03f3f9cc5f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -173,7 +173,7 @@ jobs: if: github.event_name == 'repository_dispatch' uses: peter-evans/repository-dispatch@v4 with: - token: ${{ secrets.RELEASE_GITHUB_TOKEN }} + token: ${{ github.token }} repository: ${{ github.repository }} event-type: publish-release client-payload: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 262bf116e0..52d2f70d6f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,6 +7,8 @@ jobs: release: name: Trigger ci flow runs-on: ubuntu-24.04 + permissions: + contents: write steps: - name: Checkout @@ -22,7 +24,7 @@ jobs: - uses: peter-evans/repository-dispatch@v4 with: - token: ${{ secrets.RELEASE_GITHUB_TOKEN }} + token: ${{ github.token }} repository: ${{ github.repository }} event-type: ci-release client-payload: | From a4735c904aa578697b6ed960a7f9be478c94facc Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 17 Mar 2026 12:57:53 +0100 Subject: [PATCH 214/358] ci(workflows): Transition publishing to GitHub App tokens Enhance security by replacing a long-lived repository secret with ephemeral, permission-scoped GitHub App tokens for publishing actions. --- .github/workflows/gittools-actions.yml | 18 +++++++++++++++++- .github/workflows/homebrew.yml | 20 +++++++++++++++++++- .github/workflows/winget.yml | 21 ++++++++++++++++++--- 3 files changed, 54 insertions(+), 5 deletions(-) diff --git a/.github/workflows/gittools-actions.yml b/.github/workflows/gittools-actions.yml index 46b6691d35..ad3bd28b03 100644 --- a/.github/workflows/gittools-actions.yml +++ b/.github/workflows/gittools-actions.yml @@ -33,11 +33,27 @@ jobs: $version = "${{ github.event.inputs.tag-name }}" } "version=$version" >> $env:GITHUB_OUTPUT + - + name: Load GitHub App credentials + id: gh-app-creds + uses: gittools/cicd/gh-app-creds@main + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + - + name: Generate GitHub App Token + id: app-token + uses: actions/create-github-app-token@v3 + with: + app-id: ${{ steps.gh-app-creds.outputs.gh_app_id }} + private-key: ${{ steps.gh-app-creds.outputs.gh_app_private_key }} + owner: ${{ github.repository_owner }} + repositories: actions + permission-contents: write - uses: peter-evans/repository-dispatch@v4 name: Update GitTools Actions with: - token: ${{ secrets.RELEASE_GITHUB_TOKEN }} + token: ${{ steps.app-token.outputs.token }} repository: ${{ github.repository_owner }}/actions event-type: gitversion-release-published client-payload: | diff --git a/.github/workflows/homebrew.yml b/.github/workflows/homebrew.yml index 3f3ee536b2..47a59a7139 100644 --- a/.github/workflows/homebrew.yml +++ b/.github/workflows/homebrew.yml @@ -29,6 +29,23 @@ jobs: $version = "${{ github.event.inputs.tag-name }}" } "version=$version" >> $env:GITHUB_OUTPUT + - + name: Load GitHub App credentials + id: gh-app-creds + uses: gittools/cicd/gh-app-creds@main + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + - + name: Generate GitHub App Token + id: app-token + uses: actions/create-github-app-token@v3 + with: + app-id: ${{ steps.gh-app-creds.outputs.gh_app_id }} + private-key: ${{ steps.gh-app-creds.outputs.gh_app_private_key }} + owner: ${{ github.repository_owner }} + repositories: homebrew-core + permission-contents: write + permission-pull-requests: write - uses: mislav/bump-homebrew-formula-action@v3 name: Bump Homebrew formula @@ -36,9 +53,10 @@ jobs: formula-name: gitversion tag-name: ${{ steps.get-version.outputs.version }} download-url: https://github.com/GitTools/GitVersion/archive/refs/tags/${{ steps.get-version.outputs.version }}.tar.gz + push-to: ${{ github.repository_owner }}/homebrew-core commit-message: | {{formulaName}} {{version}} For additional details see https://github.com/GitTools/GitVersion/releases/tag/${{ steps.get-version.outputs.version }} env: - COMMITTER_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} + COMMITTER_TOKEN: ${{ steps.app-token.outputs.token }} diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 636500ac76..5b226d9c3e 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -19,11 +19,24 @@ jobs: name: Bump winget manifest runs-on: ubuntu-24.04 steps: + - name: Load GitHub App credentials + id: gh-app-creds + uses: gittools/cicd/gh-app-creds@main + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + - name: Generate GitHub App Token + id: app-token + uses: actions/create-github-app-token@v3 + with: + app-id: ${{ steps.gh-app-creds.outputs.gh_app_id }} + private-key: ${{ steps.gh-app-creds.outputs.gh_app_private_key }} + owner: ${{ github.repository_owner }} + repositories: winget-pkgs + permission-contents: write + permission-pull-requests: write - name: Get version id: get-version shell: pwsh - env: - RELEASE_GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} run: | $version = "${{ github.event.client_payload.tag }}" if ($version -eq "") { @@ -33,10 +46,12 @@ jobs: $url = "https://github.com/GitTools/GitVersion/releases/download/{0}/gitversion-win-{1}-{0}.zip" $urls = @(($url -f $version, "x64"), ($url -f $version, "arm64")) -Join " " - $run_args = "update GitTools.GitVersion --version $version --urls $urls --token $env:RELEASE_GITHUB_TOKEN --submit" + $run_args = "update GitTools.GitVersion --version $version --urls $urls --submit" "version=$version" >> $env:GITHUB_OUTPUT "run_args=$run_args" >> $env:GITHUB_OUTPUT - uses: michidk/run-komac@v2.1.0 + env: + GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} with: args: '${{ steps.get-version.outputs.run_args }}' From f2ad9c3ef44697b1226248c20225347c7c4df3ad Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 17 Mar 2026 13:36:37 +0100 Subject: [PATCH 215/358] ci(workflows): Add conditional package publishing Ensure package publication occurs only from the main branch of the GitTools repository, excluding pull requests. --- .github/workflows/_publish.yml | 7 +++++++ .github/workflows/ci.yml | 2 ++ 2 files changed, 9 insertions(+) diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index 47e445bccc..3aa6ae7226 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -1,5 +1,9 @@ on: workflow_call: + inputs: + publish_packages: + required: true + type: boolean env: DOTNET_INSTALL_DIR: "./.dotnet" @@ -33,18 +37,21 @@ jobs: - name: Load NuGet credentials id: nuget-creds + if: inputs.publish_packages uses: gittools/cicd/nuget-creds@main with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Load Chocolatey credentials id: choco-creds + if: inputs.publish_packages uses: gittools/cicd/choco-creds@main with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: '[Publish]' + if: inputs.publish_packages shell: pwsh run: dotnet run/publish.dll --target=Publish${{ matrix.taskName }} env: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 03f3f9cc5f..6b5a37f2e2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -118,6 +118,8 @@ jobs: name: Publish needs: [ artifacts_windows_test, artifacts_linux_test ] uses: ./.github/workflows/_publish.yml + with: + publish_packages: ${{ github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' }} secrets: inherit release: From 05d8e2643b1165008e13b06978b4b0dde759fdc0 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 17 Mar 2026 13:52:13 +0100 Subject: [PATCH 216/358] ci(workflows): Centralize publishing condition logic --- .github/workflows/_unit_tests.yml | 7 +++++-- .github/workflows/ci.yml | 27 ++++++++++++++++++++------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index 851a3eadf5..8af006dbd4 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -4,6 +4,9 @@ on: dotnet_versions: required: true type: string + publish_coverage: + required: true + type: boolean env: DOTNET_INSTALL_DIR: "./.dotnet" DOTNET_ROLL_FORWARD: "Major" @@ -50,7 +53,7 @@ jobs: - name: Upload Coverage uses: codecov/codecov-action@v5 - if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' && matrix.dotnet_version == '10.0' + if: success() && inputs.publish_coverage && matrix.dotnet_version == '10.0' with: files: artifacts/test-results/**/results.xml report_type: 'test_results' @@ -59,7 +62,7 @@ jobs: - name: Upload Coverage uses: codecov/codecov-action@v5 - if: success() && github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' && matrix.dotnet_version == '10.0' + if: success() && inputs.publish_coverage && matrix.dotnet_version == '10.0' with: directory: artifacts/test-results report_type: 'coverage' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6b5a37f2e2..32608719d0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,6 +47,18 @@ jobs: name: Prepare uses: ./.github/workflows/_prepare.yml + publish_flags: + name: Publish Flags + runs-on: ubuntu-24.04 + outputs: + can_publish: ${{ steps.flags.outputs.can_publish }} + steps: + - + name: Resolve publish flag + id: flags + shell: bash + run: echo "can_publish=${{ github.repository == 'GitTools/GitVersion' && github.ref_name == 'main' }}" >> "$GITHUB_OUTPUT" + build: name: Build & Package needs: [ prepare ] @@ -54,10 +66,11 @@ jobs: unit_test: name: Test - needs: [ prepare ] + needs: [ prepare, publish_flags ] uses: ./.github/workflows/_unit_tests.yml with: dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }} + publish_coverage: ${{ fromJson(needs.publish_flags.outputs.can_publish) }} secrets: inherit artifacts_windows_test: @@ -84,7 +97,7 @@ jobs: dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }} docker_linux_images: - needs: [ prepare, build ] + needs: [ prepare, build, publish_flags ] name: Docker Images (${{ matrix.arch }}) strategy: fail-fast: false @@ -101,25 +114,25 @@ jobs: arch: ${{ matrix.arch }} docker_distros: ${{ needs.prepare.outputs.docker_distros }} dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }} - publish_images: ${{ github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' }} + publish_images: ${{ fromJson(needs.publish_flags.outputs.can_publish) }} secrets: inherit docker_linux_manifests: - needs: [ prepare, docker_linux_images ] + needs: [ prepare, docker_linux_images, publish_flags ] name: Docker Manifests uses: ./.github/workflows/_docker_manifests.yml with: docker_distros: ${{ needs.prepare.outputs.docker_distros }} dotnet_versions: ${{ needs.prepare.outputs.dotnet_versions }} - publish_manifests: ${{ github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' }} + publish_manifests: ${{ fromJson(needs.publish_flags.outputs.can_publish) }} secrets: inherit publish: name: Publish - needs: [ artifacts_windows_test, artifacts_linux_test ] + needs: [ artifacts_windows_test, artifacts_linux_test, publish_flags ] uses: ./.github/workflows/_publish.yml with: - publish_packages: ${{ github.event_name != 'pull_request' && github.repository_owner == 'GitTools' && github.ref_name == 'main' }} + publish_packages: ${{ fromJson(needs.publish_flags.outputs.can_publish) }} secrets: inherit release: From b05487ef2ac697320f774c754e0d15e2791e604b Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 17 Mar 2026 14:28:56 +0100 Subject: [PATCH 217/358] ci(workflows): Pin credential actions to v1 --- .github/workflows/_docker.yml | 2 +- .github/workflows/_docker_manifests.yml | 4 ++-- .github/workflows/_publish.yml | 4 ++-- .github/workflows/ci.yml | 4 ++-- .github/workflows/gittools-actions.yml | 2 +- .github/workflows/homebrew.yml | 2 +- .github/workflows/winget.yml | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/_docker.yml b/.github/workflows/_docker.yml index c51a5ebb01..219be63028 100644 --- a/.github/workflows/_docker.yml +++ b/.github/workflows/_docker.yml @@ -63,7 +63,7 @@ jobs: name: Load DockerHub credentials id: dockerhub-creds if: success() && inputs.publish_images - uses: gittools/cicd/dockerhub-creds@main + uses: gittools/cicd/dockerhub-creds@v1 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - diff --git a/.github/workflows/_docker_manifests.yml b/.github/workflows/_docker_manifests.yml index 691e619c40..ee4ecfe7c9 100644 --- a/.github/workflows/_docker_manifests.yml +++ b/.github/workflows/_docker_manifests.yml @@ -20,7 +20,6 @@ permissions: jobs: manifest: - if: inputs.publish_manifests name: ${{ matrix.docker_distro }} - net${{ matrix.dotnet_version }} runs-on: ubuntu-24.04 strategy: @@ -43,12 +42,13 @@ jobs: - name: Load DockerHub credentials id: dockerhub-creds - uses: gittools/cicd/dockerhub-creds@main + uses: gittools/cicd/dockerhub-creds@v1 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Docker Manifests uses: ./.github/actions/docker-manifests + if: inputs.publish_manifests with: docker_distro: ${{ matrix.docker_distro }} dotnet_version: ${{ matrix.dotnet_version }} diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index 3aa6ae7226..42068fe9f7 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -38,14 +38,14 @@ jobs: name: Load NuGet credentials id: nuget-creds if: inputs.publish_packages - uses: gittools/cicd/nuget-creds@main + uses: gittools/cicd/nuget-creds@v1 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Load Chocolatey credentials id: choco-creds if: inputs.publish_packages - uses: gittools/cicd/choco-creds@main + uses: gittools/cicd/choco-creds@v1 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32608719d0..3a63eadbed 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -161,14 +161,14 @@ jobs: name: Restore Artifacts uses: ./.github/actions/artifacts-restore - - name: Attetstation + name: Attestation if: env.CAN_PUBLISH == 'true' uses: ./.github/actions/artifacts-attest - name: Load DockerHub credentials id: dockerhub-creds if: env.CAN_PUBLISH == 'true' - uses: gittools/cicd/dockerhub-creds@main + uses: gittools/cicd/dockerhub-creds@v1 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - diff --git a/.github/workflows/gittools-actions.yml b/.github/workflows/gittools-actions.yml index ad3bd28b03..143dca7a4b 100644 --- a/.github/workflows/gittools-actions.yml +++ b/.github/workflows/gittools-actions.yml @@ -36,7 +36,7 @@ jobs: - name: Load GitHub App credentials id: gh-app-creds - uses: gittools/cicd/gh-app-creds@main + uses: gittools/cicd/gh-app-creds@v1 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - diff --git a/.github/workflows/homebrew.yml b/.github/workflows/homebrew.yml index 47a59a7139..db169f2981 100644 --- a/.github/workflows/homebrew.yml +++ b/.github/workflows/homebrew.yml @@ -32,7 +32,7 @@ jobs: - name: Load GitHub App credentials id: gh-app-creds - uses: gittools/cicd/gh-app-creds@main + uses: gittools/cicd/gh-app-creds@v1 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 5b226d9c3e..d92f7f01ac 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Load GitHub App credentials id: gh-app-creds - uses: gittools/cicd/gh-app-creds@main + uses: gittools/cicd/gh-app-creds@v1 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Generate GitHub App Token From 78ec9fea316ebd8532344c84a0902f3fc3ad049b Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 17 Mar 2026 15:53:07 +0100 Subject: [PATCH 218/358] ci(workflows): Conditionally load DockerHub credentials --- .github/workflows/_docker_manifests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/_docker_manifests.yml b/.github/workflows/_docker_manifests.yml index ee4ecfe7c9..ee0d79a531 100644 --- a/.github/workflows/_docker_manifests.yml +++ b/.github/workflows/_docker_manifests.yml @@ -41,6 +41,7 @@ jobs: uses: ./.github/actions/docker-setup - name: Load DockerHub credentials + if: inputs.publish_manifests id: dockerhub-creds uses: gittools/cicd/dockerhub-creds@v1 with: From 1f0f44008c60a970776ac4f387361678185c7719 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 17 Mar 2026 16:33:15 +0100 Subject: [PATCH 219/358] ci(workflows): Upgrade Docker login action to v4 --- .github/actions/docker-manifests/action.yml | 4 ++-- .github/actions/docker-publish/action.yml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/actions/docker-manifests/action.yml b/.github/actions/docker-manifests/action.yml index 23de24c989..2d9d65c1ac 100644 --- a/.github/actions/docker-manifests/action.yml +++ b/.github/actions/docker-manifests/action.yml @@ -25,7 +25,7 @@ runs: steps: - name: Login to DockerHub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ inputs.docker_registry_username }} password: ${{ inputs.docker_registry_password }} @@ -38,7 +38,7 @@ runs: --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub - name: Login to GitHub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ inputs.github_registry_username }} diff --git a/.github/actions/docker-publish/action.yml b/.github/actions/docker-publish/action.yml index e5f2e05757..4a645e4bdd 100644 --- a/.github/actions/docker-publish/action.yml +++ b/.github/actions/docker-publish/action.yml @@ -22,26 +22,26 @@ inputs: github_registry_password: description: 'GitHub Registry Password' required: true - + runs: using: 'composite' steps: - name: Login to DockerHub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ inputs.docker_registry_username }} password: ${{ inputs.docker_registry_password }} - name: '[Docker Publish] DockerHub' shell: pwsh - run: | + run: | dotnet run/docker.dll ` --target=DockerPublish --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub --verbosity=diagnostic - name: Login to GitHub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ inputs.github_registry_username }} From 40784c7bc8ef7474a9aa567802650e5cd8704848 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 17 Mar 2026 19:33:03 +0100 Subject: [PATCH 220/358] refactor(msbuild): Move GitVersionTaskBase to Tasks namespace --- .../Helpers/MsBuildTaskFixture.cs | 1 + src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs | 1 + src/GitVersion.MsBuild/GitVersionMsBuildModule.cs | 1 + src/GitVersion.MsBuild/MsBuildHost.cs | 1 + src/GitVersion.MsBuild/PublicAPI.Shipped.txt | 12 ------------ src/GitVersion.MsBuild/PublicAPI.Unshipped.txt | 12 ++++++++++++ .../{ => Tasks}/GitVersionTaskBase.cs | 2 +- 7 files changed, 17 insertions(+), 13 deletions(-) rename src/GitVersion.MsBuild/{ => Tasks}/GitVersionTaskBase.cs (93%) diff --git a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs index 3efac8d61d..a6e1224e06 100644 --- a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs +++ b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs @@ -1,6 +1,7 @@ using GitVersion.Agents; using GitVersion.Core.Tests; using GitVersion.Helpers; +using GitVersion.MsBuild.Tasks; using GitVersion.MsBuild.Tests.Mocks; namespace GitVersion.MsBuild.Tests.Helpers; diff --git a/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs b/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs index 233cc16ea8..b920cce4cd 100644 --- a/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs +++ b/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs @@ -4,6 +4,7 @@ using GitVersion.Core.Tests; using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.MsBuild.Tasks; using GitVersion.MsBuild.Tests.Helpers; using GitVersion.Testing.Extensions; using LibGit2Sharp; diff --git a/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs b/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs index 5605f8b6fb..3af25d2523 100644 --- a/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs +++ b/src/GitVersion.MsBuild/GitVersionMsBuildModule.cs @@ -1,4 +1,5 @@ using GitVersion.Logging; +using GitVersion.MsBuild.Tasks; namespace GitVersion.MsBuild; diff --git a/src/GitVersion.MsBuild/MsBuildHost.cs b/src/GitVersion.MsBuild/MsBuildHost.cs index d609509a92..11a96d20d1 100644 --- a/src/GitVersion.MsBuild/MsBuildHost.cs +++ b/src/GitVersion.MsBuild/MsBuildHost.cs @@ -1,6 +1,7 @@ using GitVersion.Agents; using GitVersion.Configuration; using GitVersion.Extensions; +using GitVersion.MsBuild.Tasks; using GitVersion.Output; namespace GitVersion.MsBuild; diff --git a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt index bfb47affab..4840de7fde 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt @@ -1,16 +1,4 @@ #nullable enable -GitVersion.MsBuild.GitVersionTaskBase -GitVersion.MsBuild.GitVersionTaskBase.BuildEngine.get -> Microsoft.Build.Framework.IBuildEngine! -GitVersion.MsBuild.GitVersionTaskBase.BuildEngine.set -> void -GitVersion.MsBuild.GitVersionTaskBase.Execute() -> bool -GitVersion.MsBuild.GitVersionTaskBase.GitVersionTaskBase() -> void -GitVersion.MsBuild.GitVersionTaskBase.HostObject.get -> Microsoft.Build.Framework.ITaskHost! -GitVersion.MsBuild.GitVersionTaskBase.HostObject.set -> void -GitVersion.MsBuild.GitVersionTaskBase.Log.get -> Microsoft.Build.Utilities.TaskLoggingHelper! -GitVersion.MsBuild.GitVersionTaskBase.SolutionDirectory.get -> string! -GitVersion.MsBuild.GitVersionTaskBase.SolutionDirectory.set -> void -GitVersion.MsBuild.GitVersionTaskBase.VersionFile.get -> string! -GitVersion.MsBuild.GitVersionTaskBase.VersionFile.set -> void GitVersion.MsBuild.Tasks.GenerateGitVersionInformation GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.GenerateGitVersionInformation() -> void GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.GitVersionInformationFilePath.get -> string! diff --git a/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt b/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt index 7dc5c58110..7d3ee50f43 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt @@ -1 +1,13 @@ #nullable enable +GitVersion.MsBuild.Tasks.GitVersionTaskBase +GitVersion.MsBuild.Tasks.GitVersionTaskBase.BuildEngine.get -> Microsoft.Build.Framework.IBuildEngine! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.BuildEngine.set -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase.Execute() -> bool +GitVersion.MsBuild.Tasks.GitVersionTaskBase.GitVersionTaskBase() -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase.HostObject.get -> Microsoft.Build.Framework.ITaskHost! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.HostObject.set -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase.Log.get -> Microsoft.Build.Utilities.TaskLoggingHelper! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.SolutionDirectory.get -> string! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.SolutionDirectory.set -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase.VersionFile.get -> string! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.VersionFile.set -> void diff --git a/src/GitVersion.MsBuild/GitVersionTaskBase.cs b/src/GitVersion.MsBuild/Tasks/GitVersionTaskBase.cs similarity index 93% rename from src/GitVersion.MsBuild/GitVersionTaskBase.cs rename to src/GitVersion.MsBuild/Tasks/GitVersionTaskBase.cs index a7fb78a9ac..8c8dbbacf4 100644 --- a/src/GitVersion.MsBuild/GitVersionTaskBase.cs +++ b/src/GitVersion.MsBuild/Tasks/GitVersionTaskBase.cs @@ -1,7 +1,7 @@ using Microsoft.Build.Framework; using Microsoft.Build.Utilities; -namespace GitVersion.MsBuild; +namespace GitVersion.MsBuild.Tasks; public abstract class GitVersionTaskBase : ITask { From 74f0b7611b15be8c8e33184c98125d92b59545aa Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Tue, 17 Mar 2026 19:33:16 +0100 Subject: [PATCH 221/358] docs(usage): Clarify GitVersion.Core library API stability statement --- docs/input/docs/usage/library.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/input/docs/usage/library.md b/docs/input/docs/usage/library.md index 78a07ced84..f7759f4402 100644 --- a/docs/input/docs/usage/library.md +++ b/docs/input/docs/usage/library.md @@ -2,22 +2,21 @@ Order: 40 Title: Library Description: | - Install with NuGet and use GitVersion as a software library. Although this + Install with NuGet and use GitVersion.Core as a software library. Although this is an unsupported option and the API may break even between minor or patch releases, it's a useful option to some. CardIcon: library.svg RedirectFrom: docs/usage/nuget-library --- -Install with NuGet and use GitVersion as a software library. Although this +Install with NuGet and use GitVersion.Core as a software library. Although this is an unsupported option and the API may break even between minor or patch releases, it's a useful option to some. :::{.alert .alert-warning} **Warning** -The library API (GitVersion.Core) is not stable and does not follow the semantic versioning -of the GitVersion tool. A patch release of the tool may break the library -and we will refactor and change the library API without notice. +The library API (GitVersion.Core) is stable, and we try to follow the semantic versioning of the GitVersion tool, +but there is no real guarantee as we mainly focus on the GitVersion.Tool. ::: -Explore the GitVersion Core library API +Explore the GitVersion.Core library API From 02431d1b2c8c79dc4b22ce41bb410d8abf8bd0c4 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 18 Mar 2026 16:35:55 +0100 Subject: [PATCH 222/358] build: Update GitHub Action versions for provenance and download --- .github/actions/artifacts-attest/action.yml | 13 +++--- .github/actions/artifacts-restore/action.yml | 47 ++++++++++---------- 2 files changed, 29 insertions(+), 31 deletions(-) diff --git a/.github/actions/artifacts-attest/action.yml b/.github/actions/artifacts-attest/action.yml index 7722489c36..aa4547a256 100644 --- a/.github/actions/artifacts-attest/action.yml +++ b/.github/actions/artifacts-attest/action.yml @@ -4,10 +4,9 @@ description: 'Artifacts attestation' runs: using: 'composite' steps: - - - name: 'Attestation' - uses: actions/attest-build-provenance@v2.0.1 - with: - subject-path: | - ${{ github.workspace }}/artifacts/packages/native - ${{ github.workspace }}/artifacts/packages/nuget \ No newline at end of file + - name: 'Attestation' + uses: actions/attest-build-provenance@v4.1.0 + with: + subject-path: | + ${{ github.workspace }}/artifacts/packages/native + ${{ github.workspace }}/artifacts/packages/nuget diff --git a/.github/actions/artifacts-restore/action.yml b/.github/actions/artifacts-restore/action.yml index acca453639..b69757c8c1 100644 --- a/.github/actions/artifacts-restore/action.yml +++ b/.github/actions/artifacts-restore/action.yml @@ -4,27 +4,26 @@ description: 'Artifacts restore' runs: using: 'composite' steps: - - - uses: actions/download-artifact@v4 - name: Download native linux packages - with: - name: native-Linux - path: ${{ github.workspace }}/artifacts/packages/native - - - uses: actions/download-artifact@v4 - name: Download native windows packages - with: - name: native-Windows - path: ${{ github.workspace }}/artifacts/packages/native - - - uses: actions/download-artifact@v4 - name: Download native macos packages - with: - name: native-macOS - path: ${{ github.workspace }}/artifacts/packages/native - - - uses: actions/download-artifact@v4 - name: Download nuget packages - with: - name: nuget - path: ${{ github.workspace }}/artifacts/packages/nuget \ No newline at end of file + - uses: actions/download-artifact@v8 + name: Download native linux packages + with: + name: native-Linux + path: ${{ github.workspace }}/artifacts/packages/native + + - uses: actions/download-artifact@v8 + name: Download native windows packages + with: + name: native-Windows + path: ${{ github.workspace }}/artifacts/packages/native + + - uses: actions/download-artifact@v8 + name: Download native macos packages + with: + name: native-macOS + path: ${{ github.workspace }}/artifacts/packages/native + + - uses: actions/download-artifact@v8 + name: Download nuget packages + with: + name: nuget + path: ${{ github.workspace }}/artifacts/packages/nuget From 30dae43f1f5a3d3eeaa1597eba06f5618f5e6761 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 18 Mar 2026 16:35:55 +0100 Subject: [PATCH 223/358] style: Standardize GitHub Actions workflow formatting --- .github/actions/cache-restore/action.yml | 37 ++-- .github/actions/docker-manifests/action.yml | 41 ++-- .github/actions/docker-publish/action.yml | 41 ++-- .github/actions/docker-setup/action.yml | 12 +- .github/actions/docker-test/action.yml | 47 +++-- .github/workflows/_artifacts_linux.yml | 71 ++++--- .github/workflows/_artifacts_windows.yml | 35 ++-- .github/workflows/_build.yml | 67 +++--- .github/workflows/_docker.yml | 87 ++++---- .github/workflows/_docker_manifests.yml | 57 +++--- .github/workflows/_prepare.yml | 71 ++++--- .github/workflows/_publish.yml | 75 ++++--- .github/workflows/_unit_tests.yml | 72 +++---- .github/workflows/codeql-analysis.yml | 88 ++++---- .github/workflows/docs.yml | 213 ++++++++++---------- .github/workflows/format.yml | 49 +++-- .github/workflows/gittools-actions.yml | 3 +- .github/workflows/homebrew.yml | 3 +- .github/workflows/new-cli.yml | 53 +++-- .github/workflows/release.yml | 11 +- 20 files changed, 551 insertions(+), 582 deletions(-) diff --git a/.github/actions/cache-restore/action.yml b/.github/actions/cache-restore/action.yml index 84201a529a..192a459441 100644 --- a/.github/actions/cache-restore/action.yml +++ b/.github/actions/cache-restore/action.yml @@ -4,22 +4,21 @@ description: 'Cache restore' runs: using: 'composite' steps: - - - name: Use cached cake frosting - id: cache-cake - uses: actions/cache@v5 - with: - path: run - key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - - - name: Use cached tools - id: cache-tools - uses: actions/cache@v5 - with: - path: tools - key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} - - - name: Setup .NET SDK - uses: actions/setup-dotnet@v5 - with: - global-json-file: global.json + - name: Use cached cake frosting + id: cache-cake + uses: actions/cache@v5 + with: + path: run + key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} + + - name: Use cached tools + id: cache-tools + uses: actions/cache@v5 + with: + path: tools + key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} + + - name: Setup .NET SDK + uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json diff --git a/.github/actions/docker-manifests/action.yml b/.github/actions/docker-manifests/action.yml index 2d9d65c1ac..5c1acd4771 100644 --- a/.github/actions/docker-manifests/action.yml +++ b/.github/actions/docker-manifests/action.yml @@ -23,30 +23,29 @@ inputs: runs: using: 'composite' steps: - - - name: Login to DockerHub - uses: docker/login-action@v4 - with: - username: ${{ inputs.docker_registry_username }} - password: ${{ inputs.docker_registry_password }} - - - name: '[Docker Publish Manifests] DockerHub' - shell: pwsh - run: | + - name: Login to DockerHub + uses: docker/login-action@v4 + with: + username: ${{ inputs.docker_registry_username }} + password: ${{ inputs.docker_registry_password }} + + - name: '[Docker Publish Manifests] DockerHub' + shell: pwsh + run: | dotnet run/docker.dll ` --target=DockerManifest --arch=amd64 --arch=arm64 --dotnet_version=${{ inputs.dotnet_version }} ` --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub - - - name: Login to GitHub - uses: docker/login-action@v4 - with: - registry: ghcr.io - username: ${{ inputs.github_registry_username }} - password: ${{ inputs.github_registry_password }} - - - name: '[Docker Publish Manifests] GitHub' - shell: pwsh - run: | + + - name: Login to GitHub + uses: docker/login-action@v4 + with: + registry: ghcr.io + username: ${{ inputs.github_registry_username }} + password: ${{ inputs.github_registry_password }} + + - name: '[Docker Publish Manifests] GitHub' + shell: pwsh + run: | dotnet run/docker.dll ` --target=DockerManifest --arch=amd64 --arch=arm64 --dotnet_version=${{ inputs.dotnet_version }} ` --docker_distro=${{ inputs.docker_distro }} --docker_registry github diff --git a/.github/actions/docker-publish/action.yml b/.github/actions/docker-publish/action.yml index 4a645e4bdd..8835c1e733 100644 --- a/.github/actions/docker-publish/action.yml +++ b/.github/actions/docker-publish/action.yml @@ -26,30 +26,29 @@ inputs: runs: using: 'composite' steps: - - - name: Login to DockerHub - uses: docker/login-action@v4 - with: - username: ${{ inputs.docker_registry_username }} - password: ${{ inputs.docker_registry_password }} - - - name: '[Docker Publish] DockerHub' - shell: pwsh - run: | + - name: Login to DockerHub + uses: docker/login-action@v4 + with: + username: ${{ inputs.docker_registry_username }} + password: ${{ inputs.docker_registry_password }} + + - name: '[Docker Publish] DockerHub' + shell: pwsh + run: | dotnet run/docker.dll ` --target=DockerPublish --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub --verbosity=diagnostic - - - name: Login to GitHub - uses: docker/login-action@v4 - with: - registry: ghcr.io - username: ${{ inputs.github_registry_username }} - password: ${{ inputs.github_registry_password }} - - - name: '[Docker Publish] GitHub' - shell: pwsh - run: | + + - name: Login to GitHub + uses: docker/login-action@v4 + with: + registry: ghcr.io + username: ${{ inputs.github_registry_username }} + password: ${{ inputs.github_registry_password }} + + - name: '[Docker Publish] GitHub' + shell: pwsh + run: | dotnet run/docker.dll ` --target=DockerPublish --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` --docker_distro=${{ inputs.docker_distro }} --docker_registry github --verbosity=diagnostic diff --git a/.github/actions/docker-setup/action.yml b/.github/actions/docker-setup/action.yml index af83f0cc85..2e43c229be 100644 --- a/.github/actions/docker-setup/action.yml +++ b/.github/actions/docker-setup/action.yml @@ -2,9 +2,9 @@ name: 'Docker Setup' description: 'Setups the docker engine' runs: - using: 'composite' - steps: - - name: Set up Docker - uses: docker/setup-docker-action@v5 - with: - daemon-config: '{ "features": { "containerd-snapshotter": true } }' + using: 'composite' + steps: + - name: Set up Docker + uses: docker/setup-docker-action@v5 + with: + daemon-config: '{ "features": { "containerd-snapshotter": true } }' diff --git a/.github/actions/docker-test/action.yml b/.github/actions/docker-test/action.yml index 5b8e20bba2..caba8d0313 100644 --- a/.github/actions/docker-test/action.yml +++ b/.github/actions/docker-test/action.yml @@ -14,27 +14,26 @@ inputs: runs: using: 'composite' steps: - - - name: '[Docker Build & Test] DockerHub' - uses: nick-fields/retry@v3 - with: - shell: pwsh - timeout_minutes: 30 - max_attempts: 3 - retry_on: error - command: | - dotnet run/docker.dll --target=DockerTest ` - --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` - --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub --verbosity=diagnostic - - - name: '[Docker Build & Test] GitHub' - uses: nick-fields/retry@v3 - with: - shell: pwsh - timeout_minutes: 30 - max_attempts: 3 - retry_on: error - command: | - dotnet run/docker.dll --target=DockerTest ` - --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` - --docker_distro=${{ inputs.docker_distro }} --docker_registry github --verbosity=diagnostic + - name: '[Docker Build & Test] DockerHub' + uses: nick-fields/retry@v3 + with: + shell: pwsh + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: | + dotnet run/docker.dll --target=DockerTest ` + --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` + --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub --verbosity=diagnostic + + - name: '[Docker Build & Test] GitHub' + uses: nick-fields/retry@v3 + with: + shell: pwsh + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: | + dotnet run/docker.dll --target=DockerTest ` + --arch=${{ inputs.arch }} --dotnet_version=${{ inputs.dotnet_version }} ` + --docker_distro=${{ inputs.docker_distro }} --docker_registry github --verbosity=diagnostic diff --git a/.github/workflows/_artifacts_linux.yml b/.github/workflows/_artifacts_linux.yml index f6484942fd..6926271591 100644 --- a/.github/workflows/_artifacts_linux.yml +++ b/.github/workflows/_artifacts_linux.yml @@ -28,39 +28,38 @@ jobs: docker_distro: ${{ fromJson(inputs.docker_distros) }} dotnet_version: ${{ fromJson(inputs.dotnet_versions) }} steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - uses: actions/download-artifact@v8 - name: Download nuget packages - with: - name: nuget - path: ${{ github.workspace }}/artifacts/packages/nuget - - - uses: actions/download-artifact@v8 - name: Download native packages - with: - name: native-Linux - path: ${{ github.workspace }}/artifacts/packages/native - - - name: Set up Docker - uses: ./.github/actions/docker-setup - - - name: '[Test Artifacts]' - uses: nick-fields/retry@v3 - with: - shell: pwsh - timeout_minutes: 30 - max_attempts: 3 - retry_on: error - command: | - dotnet run/artifacts.dll ` - --target=ArtifactsTest --arch=${{ inputs.arch }} ` - --dotnet_version=${{ matrix.dotnet_version }} ` - --docker_distro=${{ matrix.docker_distro }} + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - uses: actions/download-artifact@v8 + name: Download nuget packages + with: + name: nuget + path: ${{ github.workspace }}/artifacts/packages/nuget + + - uses: actions/download-artifact@v8 + name: Download native packages + with: + name: native-Linux + path: ${{ github.workspace }}/artifacts/packages/native + + - name: Set up Docker + uses: ./.github/actions/docker-setup + + - name: '[Test Artifacts]' + uses: nick-fields/retry@v3 + with: + shell: pwsh + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: | + dotnet run/artifacts.dll ` + --target=ArtifactsTest --arch=${{ inputs.arch }} ` + --dotnet_version=${{ matrix.dotnet_version }} ` + --docker_distro=${{ matrix.docker_distro }} diff --git a/.github/workflows/_artifacts_windows.yml b/.github/workflows/_artifacts_windows.yml index e710c0de9c..d7d5b3e0b4 100644 --- a/.github/workflows/_artifacts_windows.yml +++ b/.github/workflows/_artifacts_windows.yml @@ -15,21 +15,20 @@ jobs: package: [ Executable, MsBuildFull ] steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - uses: actions/download-artifact@v8 - name: Download nuget packages - with: - name: nuget - path: ${{ github.workspace }}/artifacts/packages/nuget - - - name: '[Test Artifacts]' - shell: pwsh - run: dotnet run/artifacts.dll --target=Artifacts${{ matrix.package }}Test + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - uses: actions/download-artifact@v8 + name: Download nuget packages + with: + name: nuget + path: ${{ github.workspace }}/artifacts/packages/nuget + + - name: '[Test Artifacts]' + shell: pwsh + run: dotnet run/artifacts.dll --target=Artifacts${{ matrix.package }}Test diff --git a/.github/workflows/_build.yml b/.github/workflows/_build.yml index 08eeac7b10..a3edd1253b 100644 --- a/.github/workflows/_build.yml +++ b/.github/workflows/_build.yml @@ -11,40 +11,39 @@ jobs: strategy: fail-fast: false matrix: - os: [windows-2025-vs2026, ubuntu-24.04, macos-26] + os: [ windows-2025-vs2026, ubuntu-24.04, macos-26 ] runs-on: ${{ matrix.os }} steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - name: '[Build]' - shell: pwsh - run: dotnet run/build.dll --target=Package - - - name: 'Upload nuget packages' - uses: actions/upload-artifact@v7 - if: matrix.os == 'windows-2025-vs2026' - with: - name: nuget - path: ${{ github.workspace }}/artifacts/packages/nuget - - - name: 'Upload native packages' - uses: actions/upload-artifact@v7 - if: matrix.os == 'windows-2025-vs2026' - with: - name: native-${{ runner.os }} - path: ${{ github.workspace }}/artifacts/packages/native/*.zip - - - name: 'Upload native packages' - uses: actions/upload-artifact@v7 - if: matrix.os != 'windows-2025-vs2026' - with: - name: native-${{ runner.os }} - path: ${{ github.workspace }}/artifacts/packages/native/*.tar.gz + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - name: '[Build]' + shell: pwsh + run: dotnet run/build.dll --target=Package + + - name: 'Upload nuget packages' + uses: actions/upload-artifact@v7 + if: matrix.os == 'windows-2025-vs2026' + with: + name: nuget + path: ${{ github.workspace }}/artifacts/packages/nuget + + - name: 'Upload native packages' + uses: actions/upload-artifact@v7 + if: matrix.os == 'windows-2025-vs2026' + with: + name: native-${{ runner.os }} + path: ${{ github.workspace }}/artifacts/packages/native/*.zip + + - name: 'Upload native packages' + uses: actions/upload-artifact@v7 + if: matrix.os != 'windows-2025-vs2026' + with: + name: native-${{ runner.os }} + path: ${{ github.workspace }}/artifacts/packages/native/*.tar.gz diff --git a/.github/workflows/_docker.yml b/.github/workflows/_docker.yml index 219be63028..d34bc7949a 100644 --- a/.github/workflows/_docker.yml +++ b/.github/workflows/_docker.yml @@ -34,47 +34,46 @@ jobs: docker_distro: ${{ fromJson(inputs.docker_distros) }} dotnet_version: ${{ fromJson(inputs.dotnet_versions) }} steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - uses: actions/download-artifact@v8 - name: Download nuget packages - with: - name: nuget - path: ${{ github.workspace }}/artifacts/packages/nuget - - - name: Set up Docker - uses: ./.github/actions/docker-setup - - - name: Docker Test - if: success() && inputs.publish_images == false - uses: ./.github/actions/docker-test - with: - arch: ${{ inputs.arch }} - docker_distro: ${{ matrix.docker_distro }} - dotnet_version: ${{ matrix.dotnet_version }} - - - name: Load DockerHub credentials - id: dockerhub-creds - if: success() && inputs.publish_images - uses: gittools/cicd/dockerhub-creds@v1 - with: - op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - - - name: Docker Publish - if: success() && inputs.publish_images - uses: ./.github/actions/docker-publish - with: - arch: ${{ inputs.arch }} - docker_distro: ${{ matrix.docker_distro }} - dotnet_version: ${{ matrix.dotnet_version }} - docker_registry_username: ${{ steps.dockerhub-creds.outputs.docker_username }} - docker_registry_password: ${{ steps.dockerhub-creds.outputs.docker_password }} - github_registry_username: ${{ github.repository_owner }} - github_registry_password: ${{ github.token }} + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - uses: actions/download-artifact@v8 + name: Download nuget packages + with: + name: nuget + path: ${{ github.workspace }}/artifacts/packages/nuget + + - name: Set up Docker + uses: ./.github/actions/docker-setup + + - name: Docker Test + if: success() && inputs.publish_images == false + uses: ./.github/actions/docker-test + with: + arch: ${{ inputs.arch }} + docker_distro: ${{ matrix.docker_distro }} + dotnet_version: ${{ matrix.dotnet_version }} + + - name: Load DockerHub credentials + id: dockerhub-creds + if: success() && inputs.publish_images + uses: gittools/cicd/dockerhub-creds@v1 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - name: Docker Publish + if: success() && inputs.publish_images + uses: ./.github/actions/docker-publish + with: + arch: ${{ inputs.arch }} + docker_distro: ${{ matrix.docker_distro }} + dotnet_version: ${{ matrix.dotnet_version }} + docker_registry_username: ${{ steps.dockerhub-creds.outputs.docker_username }} + docker_registry_password: ${{ steps.dockerhub-creds.outputs.docker_password }} + github_registry_username: ${{ github.repository_owner }} + github_registry_password: ${{ github.token }} diff --git a/.github/workflows/_docker_manifests.yml b/.github/workflows/_docker_manifests.yml index ee0d79a531..b92af58dad 100644 --- a/.github/workflows/_docker_manifests.yml +++ b/.github/workflows/_docker_manifests.yml @@ -28,32 +28,31 @@ jobs: docker_distro: ${{ fromJson(inputs.docker_distros) }} dotnet_version: ${{ fromJson(inputs.dotnet_versions) }} steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - name: Set up Docker - uses: ./.github/actions/docker-setup - - - name: Load DockerHub credentials - if: inputs.publish_manifests - id: dockerhub-creds - uses: gittools/cicd/dockerhub-creds@v1 - with: - op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - - - name: Docker Manifests - uses: ./.github/actions/docker-manifests - if: inputs.publish_manifests - with: - docker_distro: ${{ matrix.docker_distro }} - dotnet_version: ${{ matrix.dotnet_version }} - docker_registry_username: ${{ steps.dockerhub-creds.outputs.docker_username }} - docker_registry_password: ${{ steps.dockerhub-creds.outputs.docker_password }} - github_registry_username: ${{ github.repository_owner }} - github_registry_password: ${{ github.token }} + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - name: Set up Docker + uses: ./.github/actions/docker-setup + + - name: Load DockerHub credentials + if: inputs.publish_manifests + id: dockerhub-creds + uses: gittools/cicd/dockerhub-creds@v1 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - name: Docker Manifests + uses: ./.github/actions/docker-manifests + if: inputs.publish_manifests + with: + docker_distro: ${{ matrix.docker_distro }} + dotnet_version: ${{ matrix.dotnet_version }} + docker_registry_username: ${{ steps.dockerhub-creds.outputs.docker_username }} + docker_registry_password: ${{ steps.dockerhub-creds.outputs.docker_password }} + github_registry_username: ${{ github.repository_owner }} + github_registry_password: ${{ github.token }} diff --git a/.github/workflows/_prepare.yml b/.github/workflows/_prepare.yml index 9a73269762..6a6bf82ec3 100644 --- a/.github/workflows/_prepare.yml +++ b/.github/workflows/_prepare.yml @@ -18,39 +18,39 @@ jobs: strategy: fail-fast: false matrix: - os: [windows-2025-vs2026, ubuntu-24.04, macos-26] + os: [ windows-2025-vs2026, ubuntu-24.04, macos-26 ] runs-on: ${{ matrix.os }} steps: - - - name: Checkout - uses: actions/checkout@v6 - - - name: Cache cake frosting - id: cache-cake - uses: actions/cache@v5 - with: - path: run - key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - - name: Use cached tools - id: cache-tools - uses: actions/cache@v5 - with: - path: tools - key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} - - - name: Setup .NET SDK - uses: actions/setup-dotnet@v5 - with: - global-json-file: global.json - - - name: '[Build]' - if: steps.cache-cake.outputs.cache-hit != 'true' - run: dotnet build build/ --configuration=Release - - - name: '[Prepare]' - shell: pwsh - run: dotnet run/build.dll --target=BuildPrepare + - name: Checkout + uses: actions/checkout@v6 + + - name: Cache cake frosting + id: cache-cake + uses: actions/cache@v5 + with: + path: run + key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} + + - name: Use cached tools + id: cache-tools + uses: actions/cache@v5 + with: + path: tools + key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} + + - name: Setup .NET SDK + uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json + + - name: '[Build]' + if: steps.cache-cake.outputs.cache-hit != 'true' + run: dotnet build build/ --configuration=Release + + - name: '[Prepare]' + shell: pwsh + run: dotnet run/build.dll --target=BuildPrepare set_matrix: needs: [ prepare ] name: Set Matrix @@ -59,14 +59,13 @@ jobs: docker_distros: ${{ steps.set_matrix.outputs.docker_distros }} dotnet_versions: ${{ steps.set_matrix.outputs.dotnet_versions }} steps: - - - name: Checkout + - name: Checkout uses: actions/checkout@v6 - - - name: Restore State + + - name: Restore State uses: ./.github/actions/cache-restore - - - name: '[Matrix]' + + - name: '[Matrix]' id: set_matrix shell: pwsh run: dotnet run/config.dll --target=SetMatrix diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index 42068fe9f7..f6cad14a2b 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -19,42 +19,39 @@ jobs: taskName: [ NuGet, Chocolatey ] steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - uses: actions/download-artifact@v8 - name: Download nuget packages - with: - name: nuget - path: ${{ github.workspace }}/artifacts/packages/nuget - - - - name: Load NuGet credentials - id: nuget-creds - if: inputs.publish_packages - uses: gittools/cicd/nuget-creds@v1 - with: - op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - - - name: Load Chocolatey credentials - id: choco-creds - if: inputs.publish_packages - uses: gittools/cicd/choco-creds@v1 - with: - op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - - - - name: '[Publish]' - if: inputs.publish_packages - shell: pwsh - run: dotnet run/publish.dll --target=Publish${{ matrix.taskName }} - env: - GITHUB_TOKEN: ${{ github.token }} - NUGET_API_KEY: ${{ steps.nuget-creds.outputs.nuget_api_key }} - CHOCOLATEY_API_KEY: ${{ steps.choco-creds.outputs.choco_api_key }} + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - uses: actions/download-artifact@v8 + name: Download nuget packages + with: + name: nuget + path: ${{ github.workspace }}/artifacts/packages/nuget + + - name: Load NuGet credentials + id: nuget-creds + if: inputs.publish_packages + uses: gittools/cicd/nuget-creds@v1 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - name: Load Chocolatey credentials + id: choco-creds + if: inputs.publish_packages + uses: gittools/cicd/choco-creds@v1 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - name: '[Publish]' + if: inputs.publish_packages + shell: pwsh + run: dotnet run/publish.dll --target=Publish${{ matrix.taskName }} + env: + GITHUB_TOKEN: ${{ github.token }} + NUGET_API_KEY: ${{ steps.nuget-creds.outputs.nuget_api_key }} + CHOCOLATEY_API_KEY: ${{ steps.choco-creds.outputs.choco_api_key }} diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index 8af006dbd4..be5d056287 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -24,46 +24,40 @@ jobs: runs-on: ${{ matrix.os }} steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + - name: Restore State + uses: ./.github/actions/cache-restore - - - name: '[Unit Test]' - uses: nick-fields/retry@v3 - with: - shell: pwsh - timeout_minutes: 30 - max_attempts: 3 - retry_on: error - command: 'dotnet run/build.dll --target=UnitTest --dotnet_version=${{ matrix.dotnet_version }}' + - name: '[Unit Test]' + uses: nick-fields/retry@v3 + with: + shell: pwsh + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: 'dotnet run/build.dll --target=UnitTest --dotnet_version=${{ matrix.dotnet_version }}' - - - name: Test Summary - uses: test-summary/action@v2.4 - if: always() && matrix.dotnet_version == '10.0' - with: - paths: artifacts/test-results/**/results.xml + - name: Test Summary + uses: test-summary/action@v2.4 + if: always() && matrix.dotnet_version == '10.0' + with: + paths: artifacts/test-results/**/results.xml - - - name: Upload Coverage - uses: codecov/codecov-action@v5 - if: success() && inputs.publish_coverage && matrix.dotnet_version == '10.0' - with: - files: artifacts/test-results/**/results.xml - report_type: 'test_results' - use_oidc: true + - name: Upload Coverage + uses: codecov/codecov-action@v5 + if: success() && inputs.publish_coverage && matrix.dotnet_version == '10.0' + with: + files: artifacts/test-results/**/results.xml + report_type: 'test_results' + use_oidc: true - - - name: Upload Coverage - uses: codecov/codecov-action@v5 - if: success() && inputs.publish_coverage && matrix.dotnet_version == '10.0' - with: - directory: artifacts/test-results - report_type: 'coverage' - use_oidc: true + - name: Upload Coverage + uses: codecov/codecov-action@v5 + if: success() && inputs.publish_coverage && matrix.dotnet_version == '10.0' + with: + directory: artifacts/test-results + report_type: 'coverage' + use_oidc: true diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 69a74c0e2e..944cca470c 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -3,25 +3,25 @@ name: CodeQL on: push: branches: - - main - - 'support/*' - - 'next/*' + - main + - 'support/*' + - 'next/*' paths: - - '**' - - '!docs/**' - - '!.github/**' - - .github/workflows/codeql-analysis.yml + - '**' + - '!docs/**' + - '!.github/**' + - .github/workflows/codeql-analysis.yml pull_request: branches: - - main - - 'support/*' - - 'next/*' + - main + - 'support/*' + - 'next/*' paths: - - '**' - - '!docs/**' - - '!.github/**' - - .github/workflows/codeql-analysis.yml + - '**' + - '!docs/**' + - '!.github/**' + - .github/workflows/codeql-analysis.yml schedule: - cron: '0 12 * * *' @@ -49,40 +49,36 @@ jobs: language: [ 'csharp' ] steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 - - name: Initialize CodeQL - uses: github/codeql-action/init@v4 - with: - languages: ${{ matrix.language }} - tools: linked + - name: Initialize CodeQL + uses: github/codeql-action/init@v4 + with: + languages: ${{ matrix.language }} + tools: linked - - - name: Cache cake frosting - id: cache-cake - uses: actions/cache@v5 - with: - path: run - key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} + - name: Cache cake frosting + id: cache-cake + uses: actions/cache@v5 + with: + path: run + key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - - - name: Setup .NET SDK - uses: actions/setup-dotnet@v5 - with: - global-json-file: global.json - - - name: '[Prepare]' - if: steps.cache-cake.outputs.cache-hit != 'true' - run: dotnet build build/ --configuration=Release + - name: Setup .NET SDK + uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json - - - name: '[Build]' - shell: pwsh - run: dotnet run/build.dll --target=BuildPrepare --exclusive + - name: '[Prepare]' + if: steps.cache-cake.outputs.cache-hit != 'true' + run: dotnet build build/ --configuration=Release - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4 + - name: '[Build]' + shell: pwsh + run: dotnet run/build.dll --target=BuildPrepare --exclusive + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v4 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d4eb0f2716..503302df17 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -6,24 +6,24 @@ on: types: [ publish-release ] push: branches: - - main + - main paths: - - docs/** - - package*.json - - markdownlint.json - - .remarkrc.yaml - - mkdocs.yml - - .github/workflows/docs.yml + - docs/** + - package*.json + - markdownlint.json + - .remarkrc.yaml + - mkdocs.yml + - .github/workflows/docs.yml pull_request: branches: - - main + - main paths: - - docs/** - - package*.json - - markdownlint.json - - .remarkrc.yaml - - mkdocs.yml - - .github/workflows/docs.yml + - docs/** + - package*.json + - markdownlint.json + - .remarkrc.yaml + - mkdocs.yml + - .github/workflows/docs.yml env: DOTNET_ROLL_FORWARD: "Major" DOTNET_CLI_TELEMETRY_OPTOUT: 1 @@ -36,89 +36,87 @@ jobs: runs-on: ubuntu-24.04 steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Cache cake frosting - id: cache-cake - uses: actions/cache@v5 - with: - path: run - key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - - - name: Use cached tools - id: cache-tools - uses: actions/cache@v5 - with: - path: tools - key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} - - - name: Get npm cache directory - shell: bash - id: cache-node-dir - run: | - cacheDir=$(npm config get cache) - echo "dir=$cacheDir" >> $GITHUB_OUTPUT - - - name: Cache Node Modules - id: cache-node - uses: actions/cache@v5 - with: - path: ${{ steps.cache-node-dir.outputs.dir }} - key: node-${{ runner.os }}-${{ hashFiles('./package-lock.json') }} - restore-keys: node-${{ runner.os }} - - - name: Setup .NET SDK - uses: actions/setup-dotnet@v5 - with: - global-json-file: global.json - - - name: '[Build]' - if: steps.cache-cake.outputs.cache-hit != 'true' - run: dotnet build build/ --configuration=Release - - - name: '[Prepare]' - shell: pwsh - run: dotnet run/build.dll --target=BuildPrepare + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Cache cake frosting + id: cache-cake + uses: actions/cache@v5 + with: + path: run + key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} + + - name: Use cached tools + id: cache-tools + uses: actions/cache@v5 + with: + path: tools + key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} + + - name: Get npm cache directory + shell: bash + id: cache-node-dir + run: | + cacheDir=$(npm config get cache) + echo "dir=$cacheDir" >> $GITHUB_OUTPUT + + - name: Cache Node Modules + id: cache-node + uses: actions/cache@v5 + with: + path: ${{ steps.cache-node-dir.outputs.dir }} + key: node-${{ runner.os }}-${{ hashFiles('./package-lock.json') }} + restore-keys: node-${{ runner.os }} + + - name: Setup .NET SDK + uses: actions/setup-dotnet@v5 + with: + global-json-file: global.json + + - name: '[Build]' + if: steps.cache-cake.outputs.cache-hit != 'true' + run: dotnet build build/ --configuration=Release + + - name: '[Prepare]' + shell: pwsh + run: dotnet run/build.dll --target=BuildPrepare validate: name: Validates Html needs: [ prepare ] runs-on: ubuntu-24.04 steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - name: '[Build Documentation]' - shell: pwsh - run: dotnet run/docs.dll --target=BuildDocs - - - name: '[HTMLProofer]' - uses: chabad360/htmlproofer@master - with: - directory: ./artifacts/docs/preview - arguments: --ignore-urls /api/,/docs/,/5.12.0/ --allow-hash-href --allow-missing-href --assume-extension --disable-external --no-check_external_hash - - - name: '[Reviewdog Reporter]' - id: reporter - run: | - value=$([ ${{ github.event_name == 'pull_request' }} ] && echo "github-pr-review" || echo "github-check") - echo "value=$value" >> $GITHUB_OUTPUT - - - name: '[Remark Lint]' - uses: reviewdog/action-remark-lint@v5 - with: - github_token: ${{ github.token }} - reporter: ${{ steps.reporter.outputs.value }} + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - name: '[Build Documentation]' + shell: pwsh + run: dotnet run/docs.dll --target=BuildDocs + + - name: '[HTMLProofer]' + uses: chabad360/htmlproofer@master + with: + directory: ./artifacts/docs/preview + arguments: --ignore-urls /api/,/docs/,/5.12.0/ --allow-hash-href --allow-missing-href --assume-extension --disable-external --no-check_external_hash + + - name: '[Reviewdog Reporter]' + id: reporter + run: | + value=$([ ${{ github.event_name == 'pull_request' }} ] && echo "github-pr-review" || echo "github-check") + echo "value=$value" >> $GITHUB_OUTPUT + + - name: '[Remark Lint]' + uses: reviewdog/action-remark-lint@v5 + with: + github_token: ${{ github.token }} + reporter: ${{ steps.reporter.outputs.value }} publish: if: github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' @@ -131,20 +129,19 @@ jobs: GITHUB_TOKEN: ${{ github.token }} GITHUB_USERNAME: ${{ github.actor }} steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - name: '[Build Schemas]' - shell: pwsh - run: dotnet run/docs.dll --target=GenerateSchemas - - - name: '[Publish Documentation]' - if: github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' - shell: pwsh - run: dotnet run/docs.dll --target=PublishDocs --force + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - name: '[Build Schemas]' + shell: pwsh + run: dotnet run/docs.dll --target=GenerateSchemas + + - name: '[Publish Documentation]' + if: github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' + shell: pwsh + run: dotnet run/docs.dll --target=PublishDocs --force diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 390bd8adb3..be0be7f8d3 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -2,28 +2,28 @@ name: Code Format on: push: branches: - - main - - 'fix/*' - - 'feature/*' - - 'poc/*' - - 'support/*' - - 'next/*' + - main + - 'fix/*' + - 'feature/*' + - 'poc/*' + - 'support/*' + - 'next/*' paths: - - '**' - - '!docs/**' - - '!.github/**' - - .github/workflows/format.yml + - '**' + - '!docs/**' + - '!.github/**' + - .github/workflows/format.yml pull_request: branches: - - main - - 'support/*' - - 'next/*' + - main + - 'support/*' + - 'next/*' paths: - - '**' - - '!docs/**' - - '!.github/**' - - .github/workflows/format.yml + - '**' + - '!docs/**' + - '!.github/**' + - .github/workflows/format.yml permissions: contents: read @@ -39,17 +39,16 @@ jobs: runs-on: ubuntu-24.04 name: DotNet Format steps: - - - name: Checkout + - name: Checkout uses: actions/checkout@v6 - - - name: Setup .NET SDK + + - name: Setup .NET SDK uses: actions/setup-dotnet@v5 with: global-json-file: global.json - - - name: Run Format 'ci' solution + + - name: Run Format 'ci' solution run: dotnet format ./build/ --verify-no-changes - - - name: Run Format 'GitVersion' solution + + - name: Run Format 'GitVersion' solution run: dotnet format ./src/ --exclude **/AddFormats/ --verify-no-changes diff --git a/.github/workflows/gittools-actions.yml b/.github/workflows/gittools-actions.yml index 143dca7a4b..44746e49c5 100644 --- a/.github/workflows/gittools-actions.yml +++ b/.github/workflows/gittools-actions.yml @@ -23,8 +23,7 @@ jobs: name: Update GitTools Actions runs-on: ubuntu-24.04 steps: - - - name: Get version + - name: Get version id: get-version shell: pwsh run: | diff --git a/.github/workflows/homebrew.yml b/.github/workflows/homebrew.yml index db169f2981..b563c67ca4 100644 --- a/.github/workflows/homebrew.yml +++ b/.github/workflows/homebrew.yml @@ -19,8 +19,7 @@ jobs: name: Bump Homebrew formula runs-on: macos-latest steps: - - - name: Get version + - name: Get version id: get-version shell: pwsh run: | diff --git a/.github/workflows/new-cli.yml b/.github/workflows/new-cli.yml index 2664bdbe51..3183ce0de0 100644 --- a/.github/workflows/new-cli.yml +++ b/.github/workflows/new-cli.yml @@ -2,28 +2,28 @@ name: Build (new-cli) on: push: branches: - - main - - 'fix/*' - - 'feature/*' - - 'poc/*' - - 'support/*' - - 'next/*' + - main + - 'fix/*' + - 'feature/*' + - 'poc/*' + - 'support/*' + - 'next/*' paths: - - '**' - - '!docs/**' - - '!.github/**' - - .github/workflows/new-cli.yml + - '**' + - '!docs/**' + - '!.github/**' + - .github/workflows/new-cli.yml pull_request: branches: - - main - - 'support/*' - - 'next/*' + - main + - 'support/*' + - 'next/*' paths: - - '**' - - '!docs/**' - - '!.github/**' - - .github/workflows/new-cli.yml + - '**' + - '!docs/**' + - '!.github/**' + - .github/workflows/new-cli.yml permissions: contents: read @@ -40,20 +40,19 @@ jobs: runs-on: ubuntu-24.04 name: Build & Test (new-cli) steps: - - - name: Checkout + - name: Checkout uses: actions/checkout@v6 - - - name: Setup .NET SDK + + - name: Setup .NET SDK uses: actions/setup-dotnet@v5 with: global-json-file: global.json - - - name: Build 'new-cli' solution + + - name: Build 'new-cli' solution run: dotnet build ./new-cli - - - name: Run Format 'new-cli' solution + + - name: Run Format 'new-cli' solution run: dotnet format ./new-cli --exclude ~/.nuget/packages --verify-no-changes - - - name: Test 'new-cli' solution + + - name: Test 'new-cli' solution run: dotnet test --solution ./new-cli/GitVersion.slnx --no-build --verbosity normal diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 52d2f70d6f..6a9599e401 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,19 +10,18 @@ jobs: permissions: contents: write steps: - - - name: Checkout + - name: Checkout uses: actions/checkout@v6 - - - name: Get version + + - name: Get version id: get-version shell: pwsh run: | # Finding the version from release tag $TAG="${{ github.ref }}".Replace("refs/tags/", "") "tag=$TAG" >> $env:GITHUB_OUTPUT - - - uses: peter-evans/repository-dispatch@v4 + + - uses: peter-evans/repository-dispatch@v4 with: token: ${{ github.token }} repository: ${{ github.repository }} From 7ba7f0e7e30c94bfd590e63af31283332143bdde Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 18 Mar 2026 16:35:55 +0100 Subject: [PATCH 224/358] refactor: Consolidate GitHub credentials and git operations in workflows --- .github/workflows/gittools-actions.yml | 20 ++++----- .github/workflows/homebrew.yml | 27 ++++-------- .github/workflows/mkdocs.yml | 42 ++++++------------ .github/workflows/public-api.yml | 34 ++++++--------- .github/workflows/winget.yml | 60 +++++++++++--------------- 5 files changed, 69 insertions(+), 114 deletions(-) diff --git a/.github/workflows/gittools-actions.yml b/.github/workflows/gittools-actions.yml index 44746e49c5..32e9a9bca8 100644 --- a/.github/workflows/gittools-actions.yml +++ b/.github/workflows/gittools-actions.yml @@ -32,24 +32,24 @@ jobs: $version = "${{ github.event.inputs.tag-name }}" } "version=$version" >> $env:GITHUB_OUTPUT - - - name: Load GitHub App credentials - id: gh-app-creds - uses: gittools/cicd/gh-app-creds@v1 + + - name: Load GitHub App credentials + id: github-app-creds + uses: gittools/cicd/github-app-creds@v1 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - - - name: Generate GitHub App Token + + - name: Generate GitHub App Token id: app-token uses: actions/create-github-app-token@v3 with: - app-id: ${{ steps.gh-app-creds.outputs.gh_app_id }} - private-key: ${{ steps.gh-app-creds.outputs.gh_app_private_key }} + app-id: ${{ steps.github-app-creds.outputs.gh_app_id }} + private-key: ${{ steps.github-app-creds.outputs.gh_app_private_key }} owner: ${{ github.repository_owner }} repositories: actions permission-contents: write - - - uses: peter-evans/repository-dispatch@v4 + + - uses: peter-evans/repository-dispatch@v4 name: Update GitTools Actions with: token: ${{ steps.app-token.outputs.token }} diff --git a/.github/workflows/homebrew.yml b/.github/workflows/homebrew.yml index b563c67ca4..9d8137baf0 100644 --- a/.github/workflows/homebrew.yml +++ b/.github/workflows/homebrew.yml @@ -28,34 +28,23 @@ jobs: $version = "${{ github.event.inputs.tag-name }}" } "version=$version" >> $env:GITHUB_OUTPUT - - - name: Load GitHub App credentials - id: gh-app-creds - uses: gittools/cicd/gh-app-creds@v1 + + - name: Load GitHub release token + id: github-creds + uses: gittools/cicd/github-creds@v1 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - - - name: Generate GitHub App Token - id: app-token - uses: actions/create-github-app-token@v3 - with: - app-id: ${{ steps.gh-app-creds.outputs.gh_app_id }} - private-key: ${{ steps.gh-app-creds.outputs.gh_app_private_key }} - owner: ${{ github.repository_owner }} - repositories: homebrew-core - permission-contents: write - permission-pull-requests: write - - - uses: mislav/bump-homebrew-formula-action@v3 + + - uses: mislav/bump-homebrew-formula-action@v3 name: Bump Homebrew formula with: formula-name: gitversion tag-name: ${{ steps.get-version.outputs.version }} download-url: https://github.com/GitTools/GitVersion/archive/refs/tags/${{ steps.get-version.outputs.version }}.tar.gz - push-to: ${{ github.repository_owner }}/homebrew-core + push-to: gittools-bot/homebrew-core commit-message: | {{formulaName}} {{version}} For additional details see https://github.com/GitTools/GitVersion/releases/tag/${{ steps.get-version.outputs.version }} env: - COMMITTER_TOKEN: ${{ steps.app-token.outputs.token }} + COMMITTER_TOKEN: ${{ steps.github-creds.outputs.github_release_token }} diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 5debdc1fcc..2d05521cd3 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -24,41 +24,27 @@ defaults: jobs: docs: - permissions: - contents: write name: Update Markdown (embedded snippets) runs-on: ubuntu-24.04 steps: - - - name: Checkout - uses: actions/checkout@v6 - if: github.event_name == 'push' - - - name: Checkout - uses: actions/checkout@v6 - if: github.event_name == 'pull_request' - - - name: Setup .NET SDK + - name: Checkout + uses: gittools/cicd/checkout@v1 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + fetch-depth: 1 + + - name: Setup .NET SDK uses: actions/setup-dotnet@v5 with: global-json-file: global.json - - - name: Run MarkdownSnippets + + - name: Run MarkdownSnippets run: | dotnet tool install --global MarkdownSnippets.Tool mdsnippets --write-header false working-directory: ${{ github.workspace }}/docs/input - - - name: Check for changes - id: status - run: | - if ($null -ne (git status --porcelain)) { echo "has_changes=1"; echo "has_changes=1" >> $env:GITHUB_OUTPUT } - - - name: Push changes - run: | - git add --verbose . - git config user.name 'gittools-bot' - git config user.email 'gittoolsbot@outlook.com' - git commit -m 'Docs changes' --allow-empty - git push --force - if: steps.status.outputs.has_changes == '1' && github.event_name == 'push' + + - name: Commit and push markdown docs changes + uses: gittools/cicd/git-commit-push@v1 + with: + message: "include markdown docs changes" diff --git a/.github/workflows/public-api.yml b/.github/workflows/public-api.yml index a20c502f54..4d8fdf640f 100644 --- a/.github/workflows/public-api.yml +++ b/.github/workflows/public-api.yml @@ -11,29 +11,19 @@ defaults: jobs: public-api: - permissions: - contents: write name: Mark public API as shipped runs-on: ubuntu-24.04 steps: - - - name: Checkout - uses: actions/checkout@v6 - if: github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' - - - name: Mark public API as shipped + - name: Checkout + uses: gittools/cicd/checkout@v1 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + fetch-depth: 0 + + - name: Mark public API as shipped run: ./src/mark-shipped.ps1 - - - name: Check for changes - id: status - run: | - if ($null -ne (git status --porcelain)) { echo "has_changes=1"; echo "has_changes=1" >> $env:GITHUB_OUTPUT } - - - name: Push changes - run: | - git add --verbose . - git config user.name 'gittools-bot' - git config user.email 'gittoolsbot@outlook.com' - git commit -m 'Mark public API as shipped' --allow-empty - git push --force - if: steps.status.outputs.has_changes == '1' + + - name: Commit and push changes + uses: gittools/cicd/git-commit-push@v1 + with: + message: "include public API changes" diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index d92f7f01ac..e6bea27abc 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -14,44 +14,34 @@ permissions: jobs: homebrew: - permissions: - contents: none name: Bump winget manifest runs-on: ubuntu-24.04 steps: - - name: Load GitHub App credentials - id: gh-app-creds - uses: gittools/cicd/gh-app-creds@v1 - with: - op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - - name: Generate GitHub App Token - id: app-token - uses: actions/create-github-app-token@v3 - with: - app-id: ${{ steps.gh-app-creds.outputs.gh_app_id }} - private-key: ${{ steps.gh-app-creds.outputs.gh_app_private_key }} - owner: ${{ github.repository_owner }} - repositories: winget-pkgs - permission-contents: write - permission-pull-requests: write - - name: Get version - id: get-version - shell: pwsh - run: | - $version = "${{ github.event.client_payload.tag }}" - if ($version -eq "") { - $version = "${{ github.event.inputs.tag-name }}" - } + - name: Get version + id: get-version + shell: pwsh + run: | + $version = "${{ github.event.client_payload.tag }}" + if ($version -eq "") { + $version = "${{ github.event.inputs.tag-name }}" + } - $url = "https://github.com/GitTools/GitVersion/releases/download/{0}/gitversion-win-{1}-{0}.zip" - $urls = @(($url -f $version, "x64"), ($url -f $version, "arm64")) -Join " " + $url = "https://github.com/GitTools/GitVersion/releases/download/{0}/gitversion-win-{1}-{0}.zip" + $urls = @(($url -f $version, "x64"), ($url -f $version, "arm64")) -Join " " - $run_args = "update GitTools.GitVersion --version $version --urls $urls --submit" - "version=$version" >> $env:GITHUB_OUTPUT - "run_args=$run_args" >> $env:GITHUB_OUTPUT + $run_args = "update GitTools.GitVersion --version $version --urls $urls --submit" + "version=$version" >> $env:GITHUB_OUTPUT + "run_args=$run_args" >> $env:GITHUB_OUTPUT - - uses: michidk/run-komac@v2.1.0 - env: - GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} - with: - args: '${{ steps.get-version.outputs.run_args }}' + - name: Load GitHub release token + id: github-creds + uses: gittools/cicd/github-creds@v1 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - uses: michidk/run-komac@v2.1.0 + env: + GITHUB_TOKEN: ${{ steps.github-creds.outputs.github_release_token }} + with: + args: '${{ steps.get-version.outputs.run_args }}' + custom-fork-owner: gittools-bot From 841bf8d3e6cb89951e5c869af1da41f8b0fda4d5 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 18 Mar 2026 16:35:55 +0100 Subject: [PATCH 225/358] ci: Add workflow_dispatch trigger to mkdocs.yml --- .github/workflows/mkdocs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 2d05521cd3..9193a80d08 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -1,5 +1,6 @@ name: Markdown Update on: + workflow_dispatch: push: paths: - 'docs/**' From 44f60b5c6139ded6347eef6ac437fee8b9aaad6a Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 18 Mar 2026 16:35:55 +0100 Subject: [PATCH 226/358] build: Enhance mark-shipped script for public API changes --- src/mark-shipped.ps1 | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/mark-shipped.ps1 b/src/mark-shipped.ps1 index 46940fea6c..21e3315194 100755 --- a/src/mark-shipped.ps1 +++ b/src/mark-shipped.ps1 @@ -7,30 +7,35 @@ Set-StrictMode -version 2.0 $ErrorActionPreference = "Stop" function MarkShipped([string]$dir) { + $nullableHeader = "#nullable enable"; $shippedFilePath = Join-Path $dir "PublicAPI.Shipped.txt" $shipped = @() $shipped += Get-Content $shippedFilePath $unshippedFilePath = Join-Path $dir "PublicAPI.Unshipped.txt" $unshipped = Get-Content $unshippedFilePath + $added = @() $removed = @() $removedPrefix = "*REMOVED*"; - Write-Host "Processing $dir" foreach ($item in $unshipped) { - if ($item.Length -gt 0) { + if ($item.Length -gt 0 -and $item -ne $nullableHeader) { if ( $item.StartsWith($removedPrefix)) { $item = $item.Substring($removedPrefix.Length) $removed += $item } else { $shipped += $item + $added += $item } } } + $changeCount = $added.Count + $removed.Count + Write-Host ("{0,-6} Processed {1}" -f "[$changeCount]", $unshippedFilePath) + $shipped | Sort-Object -Unique | Where-Object { -not $removed.Contains($_) } | Out-File $shippedFilePath -Encoding Ascii - "#nullable enable" | Out-File $unshippedFilePath -Encoding Ascii + $nullableHeader | Out-File $unshippedFilePath -Encoding Ascii } try { @@ -38,6 +43,9 @@ try { $dir = Split-Path -parent $file MarkShipped $dir } + if ($null -ne (git status --porcelain)) { + Write-Host "Changes detected, committing and pushing changes" + } } catch { Write-Host $_ From ac3ef49584f6180dbe58f9d35ff6ef0270bd9ce2 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 18 Mar 2026 17:33:58 +0100 Subject: [PATCH 227/358] docs: Clarify library terminology and update GitHub Actions links --- README.md | 9 ++------- docs/input/docs/usage/library.md | 4 ++-- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 202043f4b5..e5715077a1 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ Versioning when using Git, solved. GitVersion looks at your git history and works out the [Semantic Version][semver] of the commit being built. -[![Build status][azure-pipeline-badge]][azure-pipeline] [![Build status][github-actions-badge]][github-actions] [![codecov][codecov-badge]][codecov] @@ -50,13 +49,9 @@ from The Noun Project. [semver]: https://semver.org -[azure-pipeline]: https://dev.azure.com/GitTools/GitVersion/_build/latest?definitionId=1 +[github-actions]: https://github.com/GitTools/GitVersion/actions/workflows/ci.yml -[azure-pipeline-badge]: https://dev.azure.com/GitTools/GitVersion/_apis/build/status/GitTools.GitVersion - -[github-actions]: https://github.com/GitTools/GitVersion/actions - -[github-actions-badge]: https://github.com/GitTools/GitVersion/workflows/CI/badge.svg +[github-actions-badge]: https://github.com/GitTools/GitVersion/actions/workflows/ci.yml/badge.svg [codecov]: https://codecov.io/gh/GitTools/GitVersion diff --git a/docs/input/docs/usage/library.md b/docs/input/docs/usage/library.md index f7759f4402..17ae976f18 100644 --- a/docs/input/docs/usage/library.md +++ b/docs/input/docs/usage/library.md @@ -2,14 +2,14 @@ Order: 40 Title: Library Description: | - Install with NuGet and use GitVersion.Core as a software library. Although this + Install with NuGet and use GitVersion.Core as a NuGet package. Although this is an unsupported option and the API may break even between minor or patch releases, it's a useful option to some. CardIcon: library.svg RedirectFrom: docs/usage/nuget-library --- -Install with NuGet and use GitVersion.Core as a software library. Although this +Install with NuGet and use GitVersion.Core as a NuGet package. Although this is an unsupported option and the API may break even between minor or patch releases, it's a useful option to some. From a974f84c026fd51b026176b9c133611759d70213 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 18 Mar 2026 18:10:33 +0100 Subject: [PATCH 228/358] docs(reference): Improve markdown formatting for readability --- .../reference/mdsource/configuration.source.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/input/docs/reference/mdsource/configuration.source.md b/docs/input/docs/reference/mdsource/configuration.source.md index 8c745a16d3..5c2b43db5a 100644 --- a/docs/input/docs/reference/mdsource/configuration.source.md +++ b/docs/input/docs/reference/mdsource/configuration.source.md @@ -229,28 +229,38 @@ Date and time in the format `yyyy-MM-ddTHH:mm:ss` (eg `commits-before: `commits-before` will be ignored. #### paths + A sequence of regular expressions that represent paths in the repository. Commits that modify these paths will be excluded from version calculations. For example, to filter out commits that belong to `docs`: + ```yaml ignore: paths: - ^docs\/ ``` + ##### *Monorepo* + This ignore config can be used to filter only those commits that belong to a specific project in a monorepo. As an example, consider a monorepo consisting of subdirectories for `ProjectA`, `ProjectB` and a shared `LibraryC`. For GitVersion to consider only commits that are part of `projectA` and shared library `LibraryC`, a regex that matches all paths except those starting with `ProjectA` or `LibraryC` can be used. Either one of the following configs would filter out `ProjectB`. + * Specific match on `/ProjectB/*`: + ```yaml ignore: paths: - `^\/ProductB\/.*` ``` + * Negative lookahead on anything other than `/ProjectA/*` and `/LibraryC/*`: + ```yaml ignore: paths: - `^(?!\/ProductA\/|\/LibraryC\/).*` ``` + A commit having changes only in `/ProjectB/*` path would be ignored. A commit having changes in the following paths wouldn't be ignored: + * `/ProductA/*` * `/LibraryC/*` * `/ProductA/*` and `/LibraryC/*` @@ -259,7 +269,8 @@ A commit having changes only in `/ProjectB/*` path would be ignored. A commit ha * `/ProductA/*` and `/ProductB/*` and `/LibraryC/*` ::: -Note: The `ignore.paths` configuration is case-sensitive. This can lead to unexpected behavior on case-insensitive file systems, such as Windows. To ensure consistent matching regardless of case, you can prefix your regular expressions with the case-insensitive flag `(?i)`. For example, `(?i)^docs\/` will match both `docs/` and `Docs/`. +Note: The `ignore.paths` configuration is case-sensitive. +This can lead to unexpected behavior on case-insensitive file systems, such as Windows. To ensure consistent matching regardless of case, you can prefix your regular expressions with the case-insensitive flag `(?i)`. For example, `(?i)^docs\/` will match both `docs/` and `Docs/`. ::: ::: {.alert .alert-warning} @@ -284,7 +295,7 @@ The regular expression should contain the following capture groups: * `TargetBranch` - Identifies the target branch of the merge * `PullRequestNumber` - Captures the pull-request number -Custom merge message formats are evaluated _before_ any built in formats. +Custom merge message formats are evaluated *before* any built in formats. Support for [Conventional Commits][conventional-commits] can be [configured][conventional-commits-config]. @@ -551,7 +562,7 @@ branches: Strategy which will look for tagged merge commits directly off the current branch. For example `develop` → `release/1.0.0` → merge into `main` and tag -`1.0.0`. The tag is _not_ on develop, but develop should be version `1.0.0` now. +`1.0.0`. The tag is *not* on develop, but develop should be version `1.0.0` now. ### track-merge-message From 4f886e37e59b2e332cd0f6d6baf68d6157f24e39 Mon Sep 17 00:00:00 2001 From: gittools-bot Date: Wed, 18 Mar 2026 17:11:41 +0000 Subject: [PATCH 229/358] include markdown docs changes --- docs/input/docs/reference/configuration.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/input/docs/reference/configuration.md b/docs/input/docs/reference/configuration.md index 2a1350176f..2fbd2bebb1 100644 --- a/docs/input/docs/reference/configuration.md +++ b/docs/input/docs/reference/configuration.md @@ -628,28 +628,38 @@ Date and time in the format `yyyy-MM-ddTHH:mm:ss` (eg `commits-before: `commits-before` will be ignored. #### paths + A sequence of regular expressions that represent paths in the repository. Commits that modify these paths will be excluded from version calculations. For example, to filter out commits that belong to `docs`: + ```yaml ignore: paths: - ^docs\/ ``` + ##### *Monorepo* + This ignore config can be used to filter only those commits that belong to a specific project in a monorepo. As an example, consider a monorepo consisting of subdirectories for `ProjectA`, `ProjectB` and a shared `LibraryC`. For GitVersion to consider only commits that are part of `projectA` and shared library `LibraryC`, a regex that matches all paths except those starting with `ProjectA` or `LibraryC` can be used. Either one of the following configs would filter out `ProjectB`. + * Specific match on `/ProjectB/*`: + ```yaml ignore: paths: - `^\/ProductB\/.*` ``` + * Negative lookahead on anything other than `/ProjectA/*` and `/LibraryC/*`: + ```yaml ignore: paths: - `^(?!\/ProductA\/|\/LibraryC\/).*` ``` + A commit having changes only in `/ProjectB/*` path would be ignored. A commit having changes in the following paths wouldn't be ignored: + * `/ProductA/*` * `/LibraryC/*` * `/ProductA/*` and `/LibraryC/*` @@ -658,7 +668,8 @@ A commit having changes only in `/ProjectB/*` path would be ignored. A commit ha * `/ProductA/*` and `/ProductB/*` and `/LibraryC/*` ::: -Note: The `ignore.paths` configuration is case-sensitive. This can lead to unexpected behavior on case-insensitive file systems, such as Windows. To ensure consistent matching regardless of case, you can prefix your regular expressions with the case-insensitive flag `(?i)`. For example, `(?i)^docs\/` will match both `docs/` and `Docs/`. +Note: The `ignore.paths` configuration is case-sensitive. +This can lead to unexpected behavior on case-insensitive file systems, such as Windows. To ensure consistent matching regardless of case, you can prefix your regular expressions with the case-insensitive flag `(?i)`. For example, `(?i)^docs\/` will match both `docs/` and `Docs/`. ::: ::: {.alert .alert-warning} @@ -683,7 +694,7 @@ The regular expression should contain the following capture groups: * `TargetBranch` - Identifies the target branch of the merge * `PullRequestNumber` - Captures the pull-request number -Custom merge message formats are evaluated _before_ any built in formats. +Custom merge message formats are evaluated *before* any built in formats. Support for [Conventional Commits][conventional-commits] can be [configured][conventional-commits-config]. @@ -950,7 +961,7 @@ branches: Strategy which will look for tagged merge commits directly off the current branch. For example `develop` → `release/1.0.0` → merge into `main` and tag -`1.0.0`. The tag is _not_ on develop, but develop should be version `1.0.0` now. +`1.0.0`. The tag is *not* on develop, but develop should be version `1.0.0` now. ### track-merge-message From d0f3aae762c3556a9887d884b1314c3a46a56307 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 17:40:13 +0000 Subject: [PATCH 230/358] (deps): Bump Scriban from 6.5.7 to 6.5.8 --- updated-dependencies: - dependency-name: Scriban dependency-version: 6.5.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 5fc6197545..ce38175e6b 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -25,7 +25,7 @@ - + From 48638eb3dd8cc424d3eb0d0faaa1a3fc00455a67 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Wed, 18 Mar 2026 19:26:03 +0100 Subject: [PATCH 231/358] style(ci): Format GitHub Actions workflow file --- .github/workflows/ci.yml | 107 +++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 55 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3a63eadbed..0a0f42d3a6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ on: - '**' - '!docs/**' merge_group: - types: [checks_requested] + types: [ checks_requested ] repository_dispatch: types: [ ci-release ] @@ -53,11 +53,10 @@ jobs: outputs: can_publish: ${{ steps.flags.outputs.can_publish }} steps: - - - name: Resolve publish flag - id: flags - shell: bash - run: echo "can_publish=${{ github.repository == 'GitTools/GitVersion' && github.ref_name == 'main' }}" >> "$GITHUB_OUTPUT" + - name: Resolve publish flag + id: flags + shell: bash + run: echo "can_publish=${{ github.repository == 'GitTools/GitVersion' && github.ref_name == 'main' }}" >> "$GITHUB_OUTPUT" build: name: Build & Package @@ -149,52 +148,50 @@ jobs: GITHUB_TOKEN: ${{ github.token }} CAN_PUBLISH: ${{ github.event_name == 'repository_dispatch' }} steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Restore State - uses: ./.github/actions/cache-restore - - - name: Restore Artifacts - uses: ./.github/actions/artifacts-restore - - - name: Attestation - if: env.CAN_PUBLISH == 'true' - uses: ./.github/actions/artifacts-attest - - - name: Load DockerHub credentials - id: dockerhub-creds - if: env.CAN_PUBLISH == 'true' - uses: gittools/cicd/dockerhub-creds@v1 - with: - op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - - - name: DockerHub Publish Readme - if: env.CAN_PUBLISH == 'true' - shell: pwsh - run: dotnet run/docker.dll --target=DockerHubReadmePublish - env: - DOCKER_USERNAME: ${{ steps.dockerhub-creds.outputs.docker_username }} - DOCKER_PASSWORD: ${{ steps.dockerhub-creds.outputs.docker_password }} - - - name: '[Release]' - shell: pwsh - run: dotnet run/release.dll --target=PublishRelease - - - name: '[Publish Release]' - if: github.event_name == 'repository_dispatch' - uses: peter-evans/repository-dispatch@v4 - with: - token: ${{ github.token }} - repository: ${{ github.repository }} - event-type: publish-release - client-payload: | - { - "ref": "${{ github.ref }}", - "sha": "${{ github.sha }}", - "tag": "${{ github.event.client_payload.tag }}" - } - + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Restore State + uses: ./.github/actions/cache-restore + + - name: Restore Artifacts + uses: ./.github/actions/artifacts-restore + + - name: Attestation + if: env.CAN_PUBLISH == 'true' + uses: ./.github/actions/artifacts-attest + + - name: Load DockerHub credentials + id: dockerhub-creds + if: env.CAN_PUBLISH == 'true' + uses: gittools/cicd/dockerhub-creds@v1 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + + - name: DockerHub Publish Readme + if: env.CAN_PUBLISH == 'true' + shell: pwsh + run: dotnet run/docker.dll --target=DockerHubReadmePublish + env: + DOCKER_USERNAME: ${{ steps.dockerhub-creds.outputs.docker_username }} + DOCKER_PASSWORD: ${{ steps.dockerhub-creds.outputs.docker_password }} + + - name: '[Release]' + shell: pwsh + run: dotnet run/release.dll --target=PublishRelease + + - name: '[Publish Release]' + if: github.event_name == 'repository_dispatch' + uses: peter-evans/repository-dispatch@v4 + with: + token: ${{ github.token }} + repository: ${{ github.repository }} + event-type: publish-release + client-payload: | + { + "ref": "${{ github.ref }}", + "sha": "${{ github.sha }}", + "tag": "${{ github.event.client_payload.tag }}" + } From c483a48f397c4f0984d1ebbab650ab1e2d63e745 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Mar 2026 18:32:48 +0000 Subject: [PATCH 232/358] Initial plan From 62df16f1bd70eb3c9adb87a2bd4ce381e95149d4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Mar 2026 18:40:17 +0000 Subject: [PATCH 233/358] feat: support nuget.org Trusted Publishing via GitHub Actions OIDC - Wire up OIDC token exchange in PublishNuget.cs as primary publish path - Add catch-all Exception handler and use Warning for non-fatal OIDC errors - Add id-token: write permission to _publish.yml publish job - Remove 1Password NuGet creds step and NUGET_API_KEY env var - Document Trusted Publishing in CONTRIBUTING.md Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- .github/workflows/_publish.yml | 12 ++++-------- CONTRIBUTING.md | 25 +++++++++++++++++++++++++ build/publish/Tasks/PublishNuget.cs | 25 +++++++++++++++++++------ 3 files changed, 48 insertions(+), 14 deletions(-) diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index f6cad14a2b..ee3422c941 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -13,6 +13,10 @@ jobs: publish: name: ${{ matrix.taskName }} runs-on: windows-2025-vs2026 + permissions: + id-token: write + packages: write + contents: read strategy: fail-fast: false matrix: @@ -33,13 +37,6 @@ jobs: name: nuget path: ${{ github.workspace }}/artifacts/packages/nuget - - name: Load NuGet credentials - id: nuget-creds - if: inputs.publish_packages - uses: gittools/cicd/nuget-creds@v1 - with: - op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - - name: Load Chocolatey credentials id: choco-creds if: inputs.publish_packages @@ -53,5 +50,4 @@ jobs: run: dotnet run/publish.dll --target=Publish${{ matrix.taskName }} env: GITHUB_TOKEN: ${{ github.token }} - NUGET_API_KEY: ${{ steps.nuget-creds.outputs.nuget_api_key }} CHOCOLATEY_API_KEY: ${{ steps.choco-creds.outputs.choco_api_key }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 31ecfb3096..5e6a3d32e6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -142,6 +142,31 @@ We use Cake for our build and deployment process. The way the release process is and other distribution channels. 9. The issues and pull requests will get updated with message specifying in which release it was included. +### NuGet Trusted Publishing + +NuGet packages are published to nuget.org using [Trusted Publishing](https://learn.microsoft.com/en-us/nuget/nuget-org/trusted-publishing), +which replaces long-lived API keys with short-lived, identity-based tokens issued by GitHub Actions OIDC. + +**How it works:** + +1. The publish workflow requests a GitHub OIDC token scoped to `https://www.nuget.org`. +2. That token is exchanged with the nuget.org token service for a short-lived API key. +3. Packages are pushed using that short-lived key — no long-lived secret is stored or rotated. + +**One-time setup (already done for this repository):** + +The `GitTools` GitHub organisation and the `GitVersion` repository must be registered as a trusted publisher on +nuget.org for every GitVersion package. This is configured in the nuget.org package settings under +*Publishing* → *Trusted Publishers*. + +**Verification and troubleshooting:** + +- If the OIDC token exchange fails the workflow falls back to a static `NUGET_API_KEY` environment variable + (not set in normal CI runs). Check the "Publishing to nuget.org" log group for error details. +- The publish job requires `id-token: write` permission, which is declared in `.github/workflows/_publish.yml`. +- If a package fails to publish with a permissions error, verify that nuget.org Trusted Publishing is configured + for that package and that the repository/environment names match. + ## Code Style In order to apply the code style defined by by the `.editorconfig` file you can use [`dotnet-format`](https://github.com/dotnet/format). diff --git a/build/publish/Tasks/PublishNuget.cs b/build/publish/Tasks/PublishNuget.cs index f084a3a476..86899211e9 100644 --- a/build/publish/Tasks/PublishNuget.cs +++ b/build/publish/Tasks/PublishNuget.cs @@ -43,7 +43,17 @@ public override async Task RunAsync(BuildContext context) if (context.IsTaggedRelease || context.IsTaggedPreRelease) { context.StartGroup("Publishing to Nuget.org"); - var apiKey = context.Credentials?.Nuget?.ApiKey; + + // Prefer Trusted Publishing via OIDC token exchange (no long-lived API key required) + var apiKey = await GetNugetApiKey(context); + + // Fall back to a static API key when OIDC is not available + if (string.IsNullOrEmpty(apiKey)) + { + context.Information("OIDC token exchange unavailable; falling back to static NuGet API key."); + apiKey = context.Credentials?.Nuget?.ApiKey; + } + if (string.IsNullOrEmpty(apiKey)) { throw new InvalidOperationException("Could not resolve NuGet org API key."); @@ -52,8 +62,6 @@ public override async Task RunAsync(BuildContext context) PublishToNugetRepo(context, apiKey, Constants.NugetOrgUrl); context.EndGroup(); } - - await Task.CompletedTask; } private static void PublishToNugetRepo(BuildContext context, string apiKey, string apiUrl) @@ -85,17 +93,22 @@ private static void PublishToNugetRepo(BuildContext context, string apiKey, stri } catch (HttpRequestException ex) { - context.Error($"Network error while retrieving NuGet API key: {ex.Message}"); + context.Warning($"Network error while retrieving NuGet API key via OIDC: {ex.Message}"); return null; } catch (InvalidOperationException ex) { - context.Error($"Invalid operation while retrieving NuGet API key: {ex.Message}"); + context.Warning($"OIDC not available for NuGet API key retrieval: {ex.Message}"); return null; } catch (JsonException ex) { - context.Error($"JSON parsing error while retrieving NuGet API key: {ex.Message}"); + context.Warning($"JSON parsing error while retrieving NuGet API key via OIDC: {ex.Message}"); + return null; + } + catch (Exception ex) + { + context.Warning($"Unexpected error while retrieving NuGet API key via OIDC: {ex.Message}"); return null; } } From 22980a290825f0276b8fbb4a1a77d2e16adb0a38 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Mar 2026 18:54:03 +0000 Subject: [PATCH 234/358] fix: restore NuGet creds step and NUGET_API_KEY env var for fallback Without NUGET_API_KEY in the env, the fallback from OIDC to static API key in PublishNuget.cs was dead code. Restore the nuget-creds step and the env var so the fallback path is functional. Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- .github/workflows/_publish.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index ee3422c941..b94e46b468 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -37,6 +37,13 @@ jobs: name: nuget path: ${{ github.workspace }}/artifacts/packages/nuget + - name: Load NuGet credentials + id: nuget-creds + if: inputs.publish_packages + uses: gittools/cicd/nuget-creds@v1 + with: + op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} + - name: Load Chocolatey credentials id: choco-creds if: inputs.publish_packages @@ -50,4 +57,5 @@ jobs: run: dotnet run/publish.dll --target=Publish${{ matrix.taskName }} env: GITHUB_TOKEN: ${{ github.token }} + NUGET_API_KEY: ${{ steps.nuget-creds.outputs.nuget_api_key }} CHOCOLATEY_API_KEY: ${{ steps.choco-creds.outputs.choco_api_key }} From 74227d4819694fa8dcfcf698073fc788c786a1be Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Mar 2026 18:56:52 +0000 Subject: [PATCH 235/358] docs: expand nuget.org Trusted Publishing setup instructions in CONTRIBUTING.md Add step-by-step setup guide covering: - Enumerated list of the three packages that need configuration - Numbered steps to navigate nuget.org package settings - Lookup table with exact field values (owner, repo, workflow file, environment) - Warning note on exact-match OIDC claim requirement - Updated troubleshooting to mention 1Password fallback explicitly Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- CONTRIBUTING.md | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5e6a3d32e6..55bdfd9a1c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -153,19 +153,44 @@ which replaces long-lived API keys with short-lived, identity-based tokens issue 2. That token is exchanged with the nuget.org token service for a short-lived API key. 3. Packages are pushed using that short-lived key — no long-lived secret is stored or rotated. -**One-time setup (already done for this repository):** +**One-time setup (per package on nuget.org):** -The `GitTools` GitHub organisation and the `GitVersion` repository must be registered as a trusted publisher on -nuget.org for every GitVersion package. This is configured in the nuget.org package settings under -*Publishing* → *Trusted Publishers*. +Each GitVersion package on nuget.org must have the `GitTools/GitVersion` repository registered as a Trusted +Publisher. Repeat the following steps for every package listed below: + +- [`GitVersion.Tool`](https://www.nuget.org/packages/GitVersion.Tool) +- [`GitVersion.MsBuild`](https://www.nuget.org/packages/GitVersion.MsBuild) +- [`GitVersion.Core`](https://www.nuget.org/packages/GitVersion.Core) + +Steps to register a Trusted Publisher for a package: + +1. Sign in to [nuget.org](https://www.nuget.org) as a package owner. +2. Navigate to the package page and click **Manage package**. +3. Open the **Settings** tab and scroll to the **Trusted Publishers** section. +4. Click **Add trusted publisher** and fill in the following fields: + + | Field | Value | + |---|---| + | **Publisher type** | GitHub Actions | + | **Owner** | `GitTools` | + | **Repository** | `GitVersion` | + | **Workflow file name** | `ci.yml` | + | **Environment** | *(leave blank)* | + +5. Click **Add** to save the trusted publisher entry. + +> **Note:** nuget.org will only issue a short-lived key to a workflow run whose OIDC claims match *all* of the +> registered fields exactly. A mismatch on any field (for example a different workflow file name) will cause the +> token exchange to fail and the publish step will fall back to the static `NUGET_API_KEY`. **Verification and troubleshooting:** - If the OIDC token exchange fails the workflow falls back to a static `NUGET_API_KEY` environment variable - (not set in normal CI runs). Check the "Publishing to nuget.org" log group for error details. + loaded from 1Password via the `gittools/cicd/nuget-creds@v1` action. Check the "Publishing to nuget.org" log + group for error details. - The publish job requires `id-token: write` permission, which is declared in `.github/workflows/_publish.yml`. - If a package fails to publish with a permissions error, verify that nuget.org Trusted Publishing is configured - for that package and that the repository/environment names match. + for that package and that the owner, repository, and workflow file name match exactly. ## Code Style From a1bc95e1c79f6e2b3998d83e92f4ee7180bee95f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Mar 2026 19:06:24 +0000 Subject: [PATCH 236/358] docs: correct nuget.org Trusted Publishing setup - one-time per repo, not per package Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- CONTRIBUTING.md | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 55bdfd9a1c..6800c9d272 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -153,21 +153,16 @@ which replaces long-lived API keys with short-lived, identity-based tokens issue 2. That token is exchanged with the nuget.org token service for a short-lived API key. 3. Packages are pushed using that short-lived key — no long-lived secret is stored or rotated. -**One-time setup (per package on nuget.org):** +**One-time setup on nuget.org:** -Each GitVersion package on nuget.org must have the `GitTools/GitVersion` repository registered as a Trusted -Publisher. Repeat the following steps for every package listed below: - -- [`GitVersion.Tool`](https://www.nuget.org/packages/GitVersion.Tool) -- [`GitVersion.MsBuild`](https://www.nuget.org/packages/GitVersion.MsBuild) -- [`GitVersion.Core`](https://www.nuget.org/packages/GitVersion.Core) - -Steps to register a Trusted Publisher for a package: +Trusted Publishing is configured once for the repository and workflow — not per package. A single trusted +publisher entry covers every package pushed by the same workflow run. 1. Sign in to [nuget.org](https://www.nuget.org) as a package owner. -2. Navigate to the package page and click **Manage package**. -3. Open the **Settings** tab and scroll to the **Trusted Publishers** section. -4. Click **Add trusted publisher** and fill in the following fields: +2. Go to **Account settings** → **Trusted Publishers** (or navigate to any of the + [GitVersion packages](https://www.nuget.org/profiles/GitTools) and open **Manage package** → **Settings** → + **Trusted Publishers**). +3. Click **Add trusted publisher** and fill in the following fields: | Field | Value | |---|---| @@ -177,11 +172,11 @@ Steps to register a Trusted Publisher for a package: | **Workflow file name** | `ci.yml` | | **Environment** | *(leave blank)* | -5. Click **Add** to save the trusted publisher entry. +4. Click **Add** to save the entry. -> **Note:** nuget.org will only issue a short-lived key to a workflow run whose OIDC claims match *all* of the -> registered fields exactly. A mismatch on any field (for example a different workflow file name) will cause the -> token exchange to fail and the publish step will fall back to the static `NUGET_API_KEY`. +> **Note:** nuget.org will only issue a short-lived key when the OIDC claims from the workflow run match *all* +> registered fields exactly. A mismatch on any field (e.g. wrong workflow file name) will cause the token +> exchange to fail and the publish step will fall back to the static `NUGET_API_KEY`. **Verification and troubleshooting:** @@ -190,7 +185,7 @@ Steps to register a Trusted Publisher for a package: group for error details. - The publish job requires `id-token: write` permission, which is declared in `.github/workflows/_publish.yml`. - If a package fails to publish with a permissions error, verify that nuget.org Trusted Publishing is configured - for that package and that the owner, repository, and workflow file name match exactly. + and that the owner, repository, and workflow file name match exactly. ## Code Style From 494021c28114d22de84543f70b2f167f3db73677 Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 18 Mar 2026 20:20:14 +0100 Subject: [PATCH 237/358] Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6800c9d272..c3df7f8d36 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -181,7 +181,7 @@ publisher entry covers every package pushed by the same workflow run. **Verification and troubleshooting:** - If the OIDC token exchange fails the workflow falls back to a static `NUGET_API_KEY` environment variable - loaded from 1Password via the `gittools/cicd/nuget-creds@v1` action. Check the "Publishing to nuget.org" log + loaded from 1Password via the `gittools/cicd/nuget-creds@v1` action. Check the "Publishing to Nuget.org" log group for error details. - The publish job requires `id-token: write` permission, which is declared in `.github/workflows/_publish.yml`. - If a package fails to publish with a permissions error, verify that nuget.org Trusted Publishing is configured From 12f1b78dc9d4ebb72f89caa2eaaf5a74a5928831 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Mar 2026 19:26:05 +0000 Subject: [PATCH 238/358] fix: format CONTRIBUTING.md table and add missing System.Text using directive Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- CONTRIBUTING.md | 14 +++++++------- build/publish/Tasks/PublishNuget.cs | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c3df7f8d36..4debf219d0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -164,13 +164,13 @@ publisher entry covers every package pushed by the same workflow run. **Trusted Publishers**). 3. Click **Add trusted publisher** and fill in the following fields: - | Field | Value | - |---|---| - | **Publisher type** | GitHub Actions | - | **Owner** | `GitTools` | - | **Repository** | `GitVersion` | - | **Workflow file name** | `ci.yml` | - | **Environment** | *(leave blank)* | + | Field | Value | + |------------------------|-----------------| + | **Publisher type** | GitHub Actions | + | **Owner** | `GitTools` | + | **Repository** | `GitVersion` | + | **Workflow file name** | `ci.yml` | + | **Environment** | *(leave blank)* | 4. Click **Add** to save the entry. diff --git a/build/publish/Tasks/PublishNuget.cs b/build/publish/Tasks/PublishNuget.cs index 86899211e9..55d2b86402 100644 --- a/build/publish/Tasks/PublishNuget.cs +++ b/build/publish/Tasks/PublishNuget.cs @@ -1,4 +1,5 @@ using System.Net.Http.Headers; +using System.Text; using System.Text.Json; using Cake.Common.Tools.DotNet.NuGet.Push; using Common.Utilities; From b933173c09fb269152dda333d3b53e4b24279c33 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Mar 2026 19:41:34 +0000 Subject: [PATCH 239/358] fix: remove unnecessary System.Text using directive from PublishNuget.cs Co-authored-by: arturcic <1760506+arturcic@users.noreply.github.com> --- build/publish/Tasks/PublishNuget.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/build/publish/Tasks/PublishNuget.cs b/build/publish/Tasks/PublishNuget.cs index 55d2b86402..86899211e9 100644 --- a/build/publish/Tasks/PublishNuget.cs +++ b/build/publish/Tasks/PublishNuget.cs @@ -1,5 +1,4 @@ using System.Net.Http.Headers; -using System.Text; using System.Text.Json; using Cake.Common.Tools.DotNet.NuGet.Push; using Common.Utilities; From 0a43d15c4da9cbc58dd76b7be5668a7fb24127b2 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Thu, 19 Mar 2026 12:41:40 +0100 Subject: [PATCH 240/358] refactor(config): Use HashSet for ignore paths to ensure uniqueness and improve performance --- src/GitVersion.Configuration/IgnoreConfiguration.cs | 8 ++++---- src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs | 2 +- src/GitVersion.Core/PublicAPI.Shipped.txt | 1 - src/GitVersion.Core/PublicAPI.Unshipped.txt | 1 + 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/GitVersion.Configuration/IgnoreConfiguration.cs b/src/GitVersion.Configuration/IgnoreConfiguration.cs index 4ea9d6d86e..822588b3ee 100644 --- a/src/GitVersion.Configuration/IgnoreConfiguration.cs +++ b/src/GitVersion.Configuration/IgnoreConfiguration.cs @@ -1,4 +1,4 @@ -using System.Collections.ObjectModel; +using System.Globalization; using GitVersion.Configuration.Attributes; namespace GitVersion.Configuration; @@ -14,7 +14,7 @@ internal record IgnoreConfiguration : IIgnoreConfiguration public string? BeforeString { get => Before?.ToString("yyyy-MM-ddTHH:mm:ssZ"); - init => Before = value is null ? null : DateTimeOffset.Parse(value); + init => Before = value is null ? null : DateTimeOffset.Parse(value, CultureInfo.InvariantCulture); } [JsonIgnore] @@ -24,11 +24,11 @@ public string? BeforeString [JsonPropertyDescription("A sequence of SHAs to be excluded from the version calculations.")] public HashSet Shas { get; init; } = []; - IReadOnlyCollection IIgnoreConfiguration.Paths => Paths; + IReadOnlySet IIgnoreConfiguration.Paths => Paths; [JsonPropertyName("paths")] [JsonPropertyDescription("A sequence of file paths to be excluded from the version calculations.")] - public Collection Paths { get; init; } = []; + public HashSet Paths { get; init; } = []; [JsonIgnore] public bool IsEmpty => Before == null && Shas.Count == 0 && Paths.Count == 0; diff --git a/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs b/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs index ea19f6d746..e3396eb779 100644 --- a/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs +++ b/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs @@ -6,7 +6,7 @@ public interface IIgnoreConfiguration IReadOnlySet Shas { get; } - IReadOnlyCollection Paths { get; } + IReadOnlySet Paths { get; } bool IsEmpty { get; } } diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index 7e9c15e134..d131fa22b8 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -144,7 +144,6 @@ GitVersion.Configuration.IGitVersionConfiguration.Workflow.get -> string? GitVersion.Configuration.IIgnoreConfiguration GitVersion.Configuration.IIgnoreConfiguration.Before.get -> System.DateTimeOffset? GitVersion.Configuration.IIgnoreConfiguration.IsEmpty.get -> bool -GitVersion.Configuration.IIgnoreConfiguration.Paths.get -> System.Collections.Generic.IReadOnlyCollection! GitVersion.Configuration.IIgnoreConfiguration.Shas.get -> System.Collections.Generic.IReadOnlySet! GitVersion.Configuration.IPreventIncrementConfiguration GitVersion.Configuration.IPreventIncrementConfiguration.OfMergedBranch.get -> bool? diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index 7dc5c58110..0684b2e42f 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -1 +1,2 @@ #nullable enable +GitVersion.Configuration.IIgnoreConfiguration.Paths.get -> System.Collections.Generic.IReadOnlySet! From 17581b55e691336fa5e4056a5e5dae031dfb87aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 12:05:32 +0000 Subject: [PATCH 241/358] (build deps): Bump nick-fields/retry from 3 to 4 in /.github/workflows Bumps [nick-fields/retry](https://github.com/nick-fields/retry) from 3 to 4. - [Release notes](https://github.com/nick-fields/retry/releases) - [Commits](https://github.com/nick-fields/retry/compare/v3...v4) --- updated-dependencies: - dependency-name: nick-fields/retry dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/_artifacts_linux.yml | 2 +- .github/workflows/_unit_tests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/_artifacts_linux.yml b/.github/workflows/_artifacts_linux.yml index 6926271591..7f066c2bcf 100644 --- a/.github/workflows/_artifacts_linux.yml +++ b/.github/workflows/_artifacts_linux.yml @@ -52,7 +52,7 @@ jobs: uses: ./.github/actions/docker-setup - name: '[Test Artifacts]' - uses: nick-fields/retry@v3 + uses: nick-fields/retry@v4 with: shell: pwsh timeout_minutes: 30 diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index be5d056287..5a23758ffa 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -32,7 +32,7 @@ jobs: uses: ./.github/actions/cache-restore - name: '[Unit Test]' - uses: nick-fields/retry@v3 + uses: nick-fields/retry@v4 with: shell: pwsh timeout_minutes: 30 From 6611c18c96a94ef368b3a13522aed47fb60c26c5 Mon Sep 17 00:00:00 2001 From: Artur Stolear Date: Fri, 20 Mar 2026 13:47:29 +0100 Subject: [PATCH 242/358] feat(github): Add prompts for automated issue and PR creation --- .../create-issue-from-branch.prompt.md | 103 ++++++++++++++++ .../prompts/create-pr-from-branch.prompt.md | 113 ++++++++++++++++++ 2 files changed, 216 insertions(+) create mode 100644 .github/prompts/create-issue-from-branch.prompt.md create mode 100644 .github/prompts/create-pr-from-branch.prompt.md diff --git a/.github/prompts/create-issue-from-branch.prompt.md b/.github/prompts/create-issue-from-branch.prompt.md new file mode 100644 index 0000000000..d89dc5d063 --- /dev/null +++ b/.github/prompts/create-issue-from-branch.prompt.md @@ -0,0 +1,103 @@ +# Create Issue From Branch Changes + +Create or update a GitHub issue from the changes in the current branch compared to main. + +## Requirements + +1. Compare changes from origin/main..HEAD and infer the user-facing goal. +2. Do not include implementation details (no file lists, refactor notes, internal mechanics). +3. Ask before editing the issue: + - Which label should be used? + - Which milestone should be used? +4. Defaults: + - If label is not provided, use improvement. + - If milestone is not provided, use the latest open milestone. +5. The issue description must be well-formatted Markdown. +6. Use this Markdown structure exactly (omit empty sections): + - ## Summary + - ## Goal + - ## Success Criteria + - ## References +7. Keep language concise, goal-oriented, and user-facing. + +## Operational Steps + +1. Ensure branch comparison is up to date: + +```bash +git fetch origin main --quiet +git log --oneline --no-merges origin/main..HEAD +git diff --name-status origin/main..HEAD +``` + +2. Ask: + - Label? (default: improvement) + - Milestone? (default: latest open milestone) + +3. Resolve defaults: + +```bash +LABEL="${LABEL:-improvement}" + +if [ -z "$MILESTONE" ]; then + MILESTONE="$(gh api repos/{owner}/{repo}/milestones --paginate -f state=open --jq 'sort_by(.number) | last | .title')" +fi +``` + +4. Build a well-formatted Markdown body in a temp file: + +```bash +cat > /tmp/issue-body.md <<'EOF' +## Summary + + +## Goal + + +## Success Criteria +- +- + +## References +- +EOF +``` + +5. Suggest a title in this style: + - [IMPROVEMENT]: + - Adapt prefix to selected label where appropriate (for example: [FEATURE]: ...). + +6. Create or update issue: + +Create: + +```bash +gh issue create \ + --title "" \ + --label "$LABEL" \ + --milestone "$MILESTONE" \ + --body-file /tmp/issue-body.md +``` + +Update existing: + +```bash +gh issue edit <ISSUE_NUMBER> \ + --title "<TITLE>" \ + --add-label "$LABEL" \ + --milestone "$MILESTONE" \ + --body-file /tmp/issue-body.md +``` + +7. Verify and report final state: + +```bash +gh issue view <ISSUE_NUMBER> --json number,title,url,labels,milestone,body +``` + +Report: +- Issue number and URL +- Final title +- Final label(s) +- Final milestone +- Confirmation that body is well-formatted Markdown and goal-focused diff --git a/.github/prompts/create-pr-from-branch.prompt.md b/.github/prompts/create-pr-from-branch.prompt.md new file mode 100644 index 0000000000..1c2248896d --- /dev/null +++ b/.github/prompts/create-pr-from-branch.prompt.md @@ -0,0 +1,113 @@ +# Create PR From Branch Changes + +Create or update a GitHub pull request from the current branch into the fork's main branch with a well-formatted PR description. + +## Requirements + +1. Compare changes from origin/main..HEAD and infer the user-facing intent. +2. Keep the PR description aligned with the actual branch changes. +3. The PR description must be well-formatted Markdown. +4. The PR must reference the issue it resolves using closing keywords (for example: Resolves #1234). +5. If no issue number is provided, ask for it before creating or updating the PR. +6. Keep language concise, outcome-focused, and reviewer-friendly. +7. Do not include irrelevant implementation noise; summarize what matters for review. +8. Whenever new commits are pushed that change scope, update the PR description so it stays in sync with current branch changes. + +## PR Markdown Template + +Use this structure (omit empty sections): +- ## Summary +- ## Why +- ## Validation +- ## Issue + +Example: + +```md +## Summary +- <high-level change 1> +- <high-level change 2> + +## Why +- <problem or goal> + +## Validation +- <tests run> +- <results> + +## Issue +Resolves #<issue-number> +``` + +## Operational Steps + +1. Ensure branch comparison is current: + +```bash +git fetch origin main --quiet +git log --oneline --no-merges origin/main..HEAD +git diff --name-status origin/main..HEAD +``` + +2. Determine branch and existing PR state: + +```bash +BRANCH="$(git rev-parse --abbrev-ref HEAD)" +GH_PAGER=cat GH_FORCE_TTY=0 gh pr list --head "$BRANCH" --json number,title,url,state +``` + +3. Ask for required metadata if missing: +- Target issue number to resolve +- PR title override (optional) + +4. Build or refresh PR body in a temp file: + +```bash +cat > /tmp/pr-body.md <<'EOF' +## Summary +- <high-level change 1> +- <high-level change 2> + +## Why +- <problem or goal> + +## Validation +- <tests run> +- <results> + +## Issue +Resolves #<issue-number> +EOF +``` + +5. Create PR if none exists: + +```bash +GH_PAGER=cat GH_FORCE_TTY=0 gh pr create \ + --base main \ + --head "$BRANCH" \ + --title "<PR title>" \ + --body-file /tmp/pr-body.md +``` + +6. Update PR if one already exists, or after new commits change scope: + +```bash +GH_PAGER=cat GH_FORCE_TTY=0 gh pr edit <PR_NUMBER> \ + --title "<PR title>" \ + --body-file /tmp/pr-body.md +``` + +7. Verify final PR state: + +```bash +GH_PAGER=cat GH_FORCE_TTY=0 gh pr view <PR_NUMBER> --json number,title,url,body +``` + +## Completion Checklist + +- PR exists and targets main +- Description is well-formatted Markdown +- Description matches current branch changes +- Issue reference uses closing keyword (Resolves/Fixes/Closes #...) +- PR body was refreshed after any scope-changing push From 0e5d7e8eb69e966b8bab2dccaab8c7f995c545f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 12:55:24 +0000 Subject: [PATCH 243/358] (deps): Bump Scriban from 6.5.8 to 6.6.0 --- updated-dependencies: - dependency-name: Scriban dependency-version: 6.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index ce38175e6b..cebac31090 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -25,7 +25,7 @@ <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Scriban" Version="6.5.8" /> + <PackageVersion Include="Scriban" Version="6.6.0" /> <PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> From 9687ad11bb898243c439cd0664d5b87d8822c87a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 13:29:40 +0000 Subject: [PATCH 244/358] (docs deps): Bump flatted from 3.2.4 to 3.4.2 Bumps [flatted](https://github.com/WebReflection/flatted) from 3.2.4 to 3.4.2. - [Commits](https://github.com/WebReflection/flatted/compare/v3.2.4...v3.4.2) --- updated-dependencies: - dependency-name: flatted dependency-version: 3.4.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> --- package-lock.json | 284 +++++++++++++++++++++++++++------------------- 1 file changed, 166 insertions(+), 118 deletions(-) diff --git a/package-lock.json b/package-lock.json index b53f7d338c..afa7ea8fe1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,72 +7,72 @@ "name": "gitversion", "license": "MIT", "devDependencies": { - "remark": "^15.0.1", - "remark-cli": "^12.0.1", - "remark-frontmatter": "^5.0.0", - "remark-heading-gap": "^6.0.0", - "remark-lint": "^10.0.1", - "remark-lint-blockquote-indentation": "^4.0.1", - "remark-lint-checkbox-character-style": "^5.0.1", - "remark-lint-checkbox-content-indent": "^5.0.1", - "remark-lint-code": "^2.0.0", - "remark-lint-code-block-style": "^4.0.1", - "remark-lint-definition-case": "^4.0.1", - "remark-lint-definition-spacing": "^4.0.1", - "remark-lint-fenced-code-flag": "^4.2.0", - "remark-lint-fenced-code-marker": "^4.0.1", - "remark-lint-file-extension": "^3.0.1", - "remark-lint-final-definition": "^4.0.2", - "remark-lint-final-newline": "^3.0.1", - "remark-lint-hard-break-spaces": "^4.1.1", - "remark-lint-heading-increment": "^4.0.1", - "remark-lint-heading-style": "^4.0.1", - "remark-lint-heading-whitespace": "^1.0.0", - "remark-lint-link-title-style": "^4.0.1", - "remark-lint-list-item-bullet-indent": "^5.0.1", - "remark-lint-list-item-content-indent": "^4.0.1", - "remark-lint-list-item-indent": "^4.0.1", - "remark-lint-maximum-heading-length": "^4.1.1", - "remark-lint-no-blockquote-without-marker": "^6.0.1", - "remark-lint-no-consecutive-blank-lines": "^5.0.1", - "remark-lint-no-dead-urls": "^2.0.1", - "remark-lint-no-duplicate-definitions": "^4.0.1", - "remark-lint-no-duplicate-headings": "^4.0.1", - "remark-lint-no-emphasis-as-heading": "^4.0.1", - "remark-lint-no-empty-sections": "^4.0.0", - "remark-lint-no-empty-url": "^4.0.1", - "remark-lint-no-file-name-articles": "^3.0.1", - "remark-lint-no-file-name-consecutive-dashes": "^3.0.1", - "remark-lint-no-file-name-irregular-characters": "^3.0.1", - "remark-lint-no-file-name-mixed-case": "^3.0.1", - "remark-lint-no-file-name-outer-dashes": "^3.0.1", - "remark-lint-no-heading-content-indent": "^5.0.1", - "remark-lint-no-heading-indent": "^5.0.1", - "remark-lint-no-heading-like-paragraph": "^4.0.1", - "remark-lint-no-literal-urls": "^4.0.1", - "remark-lint-no-multiple-toplevel-headings": "^4.0.1", - "remark-lint-no-reference-like-url": "^4.0.1", - "remark-lint-no-repeat-punctuation": "^0.1.4", - "remark-lint-no-shell-dollars": "^4.0.1", - "remark-lint-no-shortcut-reference-image": "^4.0.1", - "remark-lint-no-table-indentation": "^5.0.1", - "remark-lint-no-tabs": "^4.0.1", - "remark-lint-no-unused-definitions": "^4.0.2", - "remark-lint-ordered-list-marker-style": "^4.0.1", - "remark-lint-ordered-list-marker-value": "^4.0.1", - "remark-lint-rule-style": "^4.0.1", - "remark-lint-strong-marker": "^4.0.1", - "remark-lint-table-cell-padding": "^5.1.1", - "remark-lint-table-pipe-alignment": "^4.1.1", - "remark-lint-table-pipes": "^5.0.1", - "remark-lint-unordered-list-marker-style": "^4.0.1", - "remark-lint-write-good": "^1.2.0", - "remark-preset-lint-consistent": "^6.0.1", - "remark-preset-lint-markdown-style-guide": "^6.0.1", - "remark-preset-lint-recommended": "^7.0.1", - "remark-retext": "^6.0.1", - "remark-textr": "^6.1.0", - "remark-validate-links": "^13.1.0" + "remark": "15.0.1", + "remark-cli": "12.0.1", + "remark-frontmatter": "5.0.0", + "remark-heading-gap": "6.0.0", + "remark-lint": "10.0.1", + "remark-lint-blockquote-indentation": "4.0.1", + "remark-lint-checkbox-character-style": "5.0.1", + "remark-lint-checkbox-content-indent": "5.0.1", + "remark-lint-code": "2.0.0", + "remark-lint-code-block-style": "4.0.1", + "remark-lint-definition-case": "4.0.1", + "remark-lint-definition-spacing": "4.0.1", + "remark-lint-fenced-code-flag": "4.2.0", + "remark-lint-fenced-code-marker": "4.0.1", + "remark-lint-file-extension": "3.0.1", + "remark-lint-final-definition": "4.0.2", + "remark-lint-final-newline": "3.0.1", + "remark-lint-hard-break-spaces": "4.1.1", + "remark-lint-heading-increment": "4.0.1", + "remark-lint-heading-style": "4.0.1", + "remark-lint-heading-whitespace": "1.0.0", + "remark-lint-link-title-style": "4.0.1", + "remark-lint-list-item-bullet-indent": "5.0.1", + "remark-lint-list-item-content-indent": "4.0.1", + "remark-lint-list-item-indent": "4.0.1", + "remark-lint-maximum-heading-length": "4.1.1", + "remark-lint-no-blockquote-without-marker": "6.0.1", + "remark-lint-no-consecutive-blank-lines": "5.0.1", + "remark-lint-no-dead-urls": "2.0.1", + "remark-lint-no-duplicate-definitions": "4.0.1", + "remark-lint-no-duplicate-headings": "4.0.1", + "remark-lint-no-emphasis-as-heading": "4.0.1", + "remark-lint-no-empty-sections": "4.0.0", + "remark-lint-no-empty-url": "4.0.1", + "remark-lint-no-file-name-articles": "3.0.1", + "remark-lint-no-file-name-consecutive-dashes": "3.0.1", + "remark-lint-no-file-name-irregular-characters": "3.0.1", + "remark-lint-no-file-name-mixed-case": "3.0.1", + "remark-lint-no-file-name-outer-dashes": "3.0.1", + "remark-lint-no-heading-content-indent": "5.0.1", + "remark-lint-no-heading-indent": "5.0.1", + "remark-lint-no-heading-like-paragraph": "4.0.1", + "remark-lint-no-literal-urls": "4.0.1", + "remark-lint-no-multiple-toplevel-headings": "4.0.1", + "remark-lint-no-reference-like-url": "4.0.1", + "remark-lint-no-repeat-punctuation": "0.1.4", + "remark-lint-no-shell-dollars": "4.0.1", + "remark-lint-no-shortcut-reference-image": "4.0.1", + "remark-lint-no-table-indentation": "5.0.1", + "remark-lint-no-tabs": "4.0.1", + "remark-lint-no-unused-definitions": "4.0.2", + "remark-lint-ordered-list-marker-style": "4.0.1", + "remark-lint-ordered-list-marker-value": "4.0.1", + "remark-lint-rule-style": "4.0.1", + "remark-lint-strong-marker": "4.0.1", + "remark-lint-table-cell-padding": "5.1.1", + "remark-lint-table-pipe-alignment": "4.1.1", + "remark-lint-table-pipes": "5.0.1", + "remark-lint-unordered-list-marker-style": "4.0.1", + "remark-lint-write-good": "1.2.0", + "remark-preset-lint-consistent": "6.0.1", + "remark-preset-lint-markdown-style-guide": "6.0.1", + "remark-preset-lint-recommended": "7.0.1", + "remark-retext": "6.0.1", + "remark-textr": "6.1.0", + "remark-validate-links": "13.1.0" } }, "node_modules/@babel/code-frame": { @@ -2203,9 +2203,9 @@ } }, "node_modules/flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "peer": true }, @@ -2395,31 +2395,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3091,6 +3066,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-online/node_modules/got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/is-plain-obj": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", @@ -5067,6 +5067,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/public-ip/node_modules/got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/pump": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", @@ -13465,9 +13490,9 @@ } }, "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "peer": true }, @@ -13601,25 +13626,6 @@ } } }, - "got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -14096,10 +14102,31 @@ "integrity": "sha512-LY3UOlRGCofw5RMhsEFHQ9xQ6jJXL9wFWWIfmSdNo8vO+DrIvan3G9hAPZiMRXddVZS2v9+CV4z9PslLhBGIyA==", "dev": true, "requires": { - "got": "^11.8.5", + "got": "11.8.5", "p-any": "^4.0.0", "p-timeout": "^6.1.2", "public-ip": "^7.0.1" + }, + "dependencies": { + "got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + } } }, "is-plain-obj": { @@ -15517,8 +15544,29 @@ "dev": true, "requires": { "dns-socket": "^4.2.2", - "got": "^11.8.5", + "got": "11.8.5", "is-ip": "^5.0.1" + }, + "dependencies": { + "got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + } } }, "pump": { From 3583e714ec70c9d5399996c7f93980ab6c2a0315 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Fri, 20 Mar 2026 14:56:22 +0100 Subject: [PATCH 245/358] ci(artifacts): Add retry logic to Windows artifact tests --- .github/workflows/_artifacts_windows.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/_artifacts_windows.yml b/.github/workflows/_artifacts_windows.yml index d7d5b3e0b4..14d2ba1be7 100644 --- a/.github/workflows/_artifacts_windows.yml +++ b/.github/workflows/_artifacts_windows.yml @@ -30,5 +30,10 @@ jobs: path: ${{ github.workspace }}/artifacts/packages/nuget - name: '[Test Artifacts]' - shell: pwsh - run: dotnet run/artifacts.dll --target=Artifacts${{ matrix.package }}Test + uses: nick-fields/retry@v4 + with: + shell: pwsh + timeout_minutes: 30 + max_attempts: 3 + retry_on: error + command: dotnet run/artifacts.dll --target=Artifacts${{ matrix.package }}Test From fa9accde65bdb8582825efb9e4da7042b1da76d2 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Thu, 19 Mar 2026 16:57:32 +0100 Subject: [PATCH 246/358] refactor(configuration): Enable property setters for YAML deserialization --- .../BranchConfiguration.cs | 28 ++++++------- .../GitVersionConfiguration.cs | 42 +++++++++---------- .../IgnoreConfiguration.cs | 8 ++-- .../PreventIncrementConfiguration.cs | 6 +-- 4 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/GitVersion.Configuration/BranchConfiguration.cs b/src/GitVersion.Configuration/BranchConfiguration.cs index 699f67fcd5..96a211a889 100644 --- a/src/GitVersion.Configuration/BranchConfiguration.cs +++ b/src/GitVersion.Configuration/BranchConfiguration.cs @@ -8,72 +8,72 @@ internal record BranchConfiguration : IBranchConfiguration { [JsonPropertyName("mode")] [JsonPropertyDescription("The deployment mode for this branch. Can be 'ManualDeployment', 'ContinuousDelivery', 'ContinuousDeployment'.")] - public DeploymentMode? DeploymentMode { get; internal init; } + public DeploymentMode? DeploymentMode { get; set; } [JsonPropertyName("label")] [JsonPropertyDescription("The label to use for this branch. Use the value {BranchName} or similar as a placeholder to insert a named capture group from RegularExpression (fx. the branch name).")] - public string? Label { get; internal init; } + public string? Label { get; set; } [JsonPropertyName("increment")] [JsonPropertyDescription("The increment strategy for this branch. Can be 'Inherit', 'Patch', 'Minor', 'Major', 'None'.")] - public IncrementStrategy Increment { get; internal init; } + public IncrementStrategy Increment { get; set; } [JsonIgnore] IPreventIncrementConfiguration IBranchConfiguration.PreventIncrement => PreventIncrement; [JsonPropertyName("prevent-increment")] [JsonPropertyDescription("The prevent increment configuration section.")] - public PreventIncrementConfiguration PreventIncrement { get; internal init; } = new(); + public PreventIncrementConfiguration PreventIncrement { get; set; } = new(); [JsonPropertyName("track-merge-target")] [JsonPropertyDescription("Strategy which will look for tagged merge commits directly off the current branch.")] - public bool? TrackMergeTarget { get; internal init; } + public bool? TrackMergeTarget { get; set; } [JsonPropertyName("track-merge-message")] [JsonPropertyDescription("This property is a branch related property and gives the user the possibility to control the behavior of whether the merge commit message will be interpreted as a next version or not.")] - public bool? TrackMergeMessage { get; internal init; } + public bool? TrackMergeMessage { get; set; } [JsonPropertyName("commit-message-incrementing")] [JsonPropertyDescription("Sets whether it should be possible to increment the version with special syntax in the commit message. Can be 'Disabled', 'Enabled' or 'MergeMessageOnly'.")] - public CommitMessageIncrementMode? CommitMessageIncrementing { get; internal init; } + public CommitMessageIncrementMode? CommitMessageIncrementing { get; set; } [JsonPropertyName("regex")] [JsonPropertyDescription("The regular expression pattern to use to match this branch.")] [JsonPropertyFormat(Format.Regex)] - public string? RegularExpression { get; internal init; } + public string? RegularExpression { get; set; } [JsonIgnore] string? IBranchConfiguration.RegularExpression => RegularExpression; [JsonPropertyName("source-branches")] [JsonPropertyDescription("The source branches for this branch.")] - public HashSet<string> SourceBranches { get; internal init; } = []; + public HashSet<string> SourceBranches { get; set; } = []; [JsonIgnore] IReadOnlyCollection<string> IBranchConfiguration.SourceBranches => SourceBranches; [JsonPropertyName("is-source-branch-for")] [JsonPropertyDescription("The branches that this branch is a source branch.")] - public HashSet<string> IsSourceBranchFor { get; internal init; } = []; + public HashSet<string> IsSourceBranchFor { get; set; } = []; [JsonIgnore] IReadOnlyCollection<string> IBranchConfiguration.IsSourceBranchFor => IsSourceBranchFor; [JsonPropertyName("tracks-release-branches")] [JsonPropertyDescription("Indicates this branch configuration represents develop in GitFlow.")] - public bool? TracksReleaseBranches { get; internal init; } + public bool? TracksReleaseBranches { get; set; } [JsonPropertyName("is-release-branch")] [JsonPropertyDescription("Indicates this branch configuration represents a release branch in GitFlow.")] - public bool? IsReleaseBranch { get; internal init; } + public bool? IsReleaseBranch { get; set; } [JsonPropertyName("is-main-branch")] [JsonPropertyDescription("When using Mainline mode, this indicates that this branch is a mainline. By default main and support/* are mainlines.")] - public bool? IsMainBranch { get; internal init; } + public bool? IsMainBranch { get; set; } [JsonPropertyName("pre-release-weight")] [JsonPropertyDescription("Provides a way to translate the PreReleaseLabel to a number.")] - public int? PreReleaseWeight { get; internal init; } + public int? PreReleaseWeight { get; set; } public virtual IBranchConfiguration Inherit(IBranchConfiguration configuration) { diff --git a/src/GitVersion.Configuration/GitVersionConfiguration.cs b/src/GitVersion.Configuration/GitVersionConfiguration.cs index 6e3a49bf9c..7e35964d78 100644 --- a/src/GitVersion.Configuration/GitVersionConfiguration.cs +++ b/src/GitVersion.Configuration/GitVersionConfiguration.cs @@ -10,49 +10,49 @@ internal sealed record GitVersionConfiguration : BranchConfiguration, IGitVersio { [JsonPropertyName("workflow")] [JsonPropertyDescription("The base template of the configuration to use. Possible values are: 'GitFlow/v1' or 'GitHubFlow/v1'")] - public string? Workflow { get; internal init; } + public string? Workflow { get; set; } [JsonPropertyName("assembly-versioning-scheme")] [JsonPropertyDescription($"The scheme to use when setting AssemblyVersion attribute. Can be 'MajorMinorPatchTag', 'MajorMinorPatch', 'MajorMinor', 'Major', 'None'. Defaults to '{NameOfDefaultAssemblyVersioningScheme}'.")] [JsonPropertyDefault(DefaultAssemblyVersioningScheme)] - public AssemblyVersioningScheme? AssemblyVersioningScheme { get; internal init; } + public AssemblyVersioningScheme? AssemblyVersioningScheme { get; set; } [JsonPropertyName("assembly-file-versioning-scheme")] [JsonPropertyDescription($"The scheme to use when setting AssemblyFileVersion attribute. Can be 'MajorMinorPatchTag', 'MajorMinorPatch', 'MajorMinor', 'Major', 'None'. Defaults to '{NameOfDefaultAssemblyFileVersioningScheme}'.")] [JsonPropertyDefault(DefaultAssemblyFileVersioningScheme)] - public AssemblyFileVersioningScheme? AssemblyFileVersioningScheme { get; internal init; } + public AssemblyFileVersioningScheme? AssemblyFileVersioningScheme { get; set; } [JsonPropertyName("assembly-informational-format")] [JsonPropertyDescription($"Specifies the format of AssemblyInformationalVersion. Defaults to '{DefaultAssemblyInformationalFormat}'.")] [JsonPropertyDefault($"'{DefaultAssemblyInformationalFormat}'")] - public string? AssemblyInformationalFormat { get; internal init; } + public string? AssemblyInformationalFormat { get; set; } [JsonPropertyName("assembly-versioning-format")] [JsonPropertyDescription("Specifies the format of AssemblyVersion and overwrites the value of assembly-versioning-scheme.")] - public string? AssemblyVersioningFormat { get; internal init; } + public string? AssemblyVersioningFormat { get; set; } [JsonPropertyName("assembly-file-versioning-format")] [JsonPropertyDescription("Specifies the format of AssemblyFileVersion and overwrites the value of assembly-file-versioning-scheme.")] - public string? AssemblyFileVersioningFormat { get; internal init; } + public string? AssemblyFileVersioningFormat { get; set; } [JsonPropertyName("tag-prefix")] [JsonPropertyDescription($"A regular expression which is used to trim Git tags before processing. Defaults to '{RegexPatterns.Configuration.DefaultTagPrefixRegexPattern}'")] [JsonPropertyDefault(RegexPatterns.Configuration.DefaultTagPrefixRegexPattern)] [JsonPropertyFormat(Format.Regex)] - public string? TagPrefixPattern { get; internal init; } + public string? TagPrefixPattern { get; set; } [JsonPropertyName("version-in-branch-pattern")] [JsonPropertyDescription($"A regular expression which is used to determine the version number in the branch name or commit message (e.g., v1.0.0-LTS). Defaults to '{RegexPatterns.Configuration.DefaultVersionInBranchRegexPattern}'.")] [JsonPropertyDefault(RegexPatterns.Configuration.DefaultVersionInBranchRegexPattern)] [JsonPropertyFormat(Format.Regex)] - public string? VersionInBranchPattern { get; internal init; } + public string? VersionInBranchPattern { get; set; } [JsonPropertyName("next-version")] [JsonPropertyDescription("Allows you to bump the next version explicitly. Useful for bumping main or a feature branch with breaking changes")] public string? NextVersion { get => nextVersion; - internal init => + set => nextVersion = int.TryParse(value, NumberStyles.Any, NumberFormatInfo.InvariantInfo, out var major) ? $"{major}.0" : value; @@ -63,39 +63,39 @@ public string? NextVersion [JsonPropertyDescription($"The regular expression to match commit messages with to perform a major version increment. Defaults to '{RegexPatterns.VersionCalculation.DefaultMajorRegexPattern}'")] [JsonPropertyDefault(RegexPatterns.VersionCalculation.DefaultMajorRegexPattern)] [JsonPropertyFormat(Format.Regex)] - public string? MajorVersionBumpMessage { get; internal init; } + public string? MajorVersionBumpMessage { get; set; } [JsonPropertyName("minor-version-bump-message")] [JsonPropertyDescription($"The regular expression to match commit messages with to perform a minor version increment. Defaults to '{RegexPatterns.VersionCalculation.DefaultMinorRegexPattern}'")] [JsonPropertyDefault(RegexPatterns.VersionCalculation.DefaultMinorRegexPattern)] [JsonPropertyFormat(Format.Regex)] - public string? MinorVersionBumpMessage { get; internal init; } + public string? MinorVersionBumpMessage { get; set; } [JsonPropertyName("patch-version-bump-message")] [JsonPropertyDescription($"The regular expression to match commit messages with to perform a patch version increment. Defaults to '{RegexPatterns.VersionCalculation.DefaultPatchRegexPattern}'")] [JsonPropertyDefault(RegexPatterns.VersionCalculation.DefaultPatchRegexPattern)] [JsonPropertyFormat(Format.Regex)] - public string? PatchVersionBumpMessage { get; internal init; } + public string? PatchVersionBumpMessage { get; set; } [JsonPropertyName("no-bump-message")] [JsonPropertyDescription($"Used to tell GitVersion not to increment when in Mainline development mode. Defaults to '{RegexPatterns.VersionCalculation.DefaultNoBumpRegexPattern}'")] [JsonPropertyDefault(RegexPatterns.VersionCalculation.DefaultNoBumpRegexPattern)] [JsonPropertyFormat(Format.Regex)] - public string? NoBumpMessage { get; internal init; } + public string? NoBumpMessage { get; set; } [JsonPropertyName("tag-pre-release-weight")] [JsonPropertyDescription($"The pre-release weight in case of tagged commits. Defaults to {StringDefaultTagPreReleaseWeight}.")] - public int? TagPreReleaseWeight { get; internal init; } + public int? TagPreReleaseWeight { get; set; } [JsonPropertyName("commit-date-format")] [JsonPropertyDescription($"The format to use when calculating the commit date. Defaults to '{DefaultCommitDateFormat}'. See [Standard Date and Time Format Strings](https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings) and [Custom Date and Time Format Strings](https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings).")] [JsonPropertyDefault(DefaultCommitDateFormat)] [System.Diagnostics.CodeAnalysis.StringSyntax("DateTimeFormat")] - public string? CommitDateFormat { get; internal init; } + public string? CommitDateFormat { get; set; } [JsonPropertyName("merge-message-formats")] [JsonPropertyDescription("Custom merge message formats to enable identification of merge messages that do not follow the built-in conventions.")] - public Dictionary<string, string> MergeMessageFormats { get; internal init; } = []; + public Dictionary<string, string> MergeMessageFormats { get; set; } = []; [JsonIgnore] IReadOnlyDictionary<string, string> IGitVersionConfiguration.MergeMessageFormats => MergeMessageFormats; @@ -103,12 +103,12 @@ public string? NextVersion [JsonPropertyName("update-build-number")] [JsonPropertyDescription($"Whether to update the build number in the project file. Defaults to {StringDefaultUpdateBuildNumber}.")] [JsonPropertyDefault(DefaultUpdateBuildNumber)] - public bool UpdateBuildNumber { get; internal init; } = DefaultUpdateBuildNumber; + public bool UpdateBuildNumber { get; set; } = DefaultUpdateBuildNumber; [JsonPropertyName("semantic-version-format")] [JsonPropertyDescription($"Specifies the semantic version format that is used when parsing the string. Can be 'Strict' or 'Loose'. Defaults to '{StringDefaultSemanticVersionFormat}'.")] [JsonPropertyDefault(DefaultSemanticVersionFormat)] - public SemanticVersionFormat SemanticVersionFormat { get; internal init; } + public SemanticVersionFormat SemanticVersionFormat { get; set; } [JsonIgnore] VersionStrategies IGitVersionConfiguration.VersionStrategy => VersionStrategies.Length == 0 @@ -116,7 +116,7 @@ public string? NextVersion [JsonPropertyName("strategies")] [JsonPropertyDescription($"Specifies which version strategies (one or more) will be used to determine the next version. Following values are available: '{nameof(VersionCalculation.VersionStrategies.ConfiguredNextVersion)}', '{nameof(VersionCalculation.VersionStrategies.MergeMessage)}', '{nameof(VersionCalculation.VersionStrategies.TaggedCommit)}', '{nameof(VersionCalculation.VersionStrategies.TrackReleaseBranches)}', '{nameof(VersionCalculation.VersionStrategies.VersionInBranchName)}' and '{nameof(VersionCalculation.VersionStrategies.Mainline)}'.")] - public VersionStrategies[] VersionStrategies { get; internal init; } = []; + public VersionStrategies[] VersionStrategies { get; set; } = []; [JsonIgnore] IReadOnlyDictionary<string, IBranchConfiguration> IGitVersionConfiguration.Branches @@ -124,14 +124,14 @@ IReadOnlyDictionary<string, IBranchConfiguration> IGitVersionConfiguration.Branc [JsonPropertyName("branches")] [JsonPropertyDescription("The header for all the individual branch configuration.")] - public Dictionary<string, BranchConfiguration> Branches { get; internal init; } = []; + public Dictionary<string, BranchConfiguration> Branches { get; set; } = []; [JsonIgnore] IIgnoreConfiguration IGitVersionConfiguration.Ignore => Ignore; [JsonPropertyName("ignore")] [JsonPropertyDescription("The header property for the ignore configuration.")] - public IgnoreConfiguration Ignore { get; internal init; } = new(); + public IgnoreConfiguration Ignore { get; set; } = new(); public override IBranchConfiguration Inherit(IBranchConfiguration configuration) => throw new NotSupportedException(); diff --git a/src/GitVersion.Configuration/IgnoreConfiguration.cs b/src/GitVersion.Configuration/IgnoreConfiguration.cs index 822588b3ee..a145a22ad6 100644 --- a/src/GitVersion.Configuration/IgnoreConfiguration.cs +++ b/src/GitVersion.Configuration/IgnoreConfiguration.cs @@ -6,7 +6,7 @@ namespace GitVersion.Configuration; internal record IgnoreConfiguration : IIgnoreConfiguration { [JsonIgnore] - public DateTimeOffset? Before { get; init; } + public DateTimeOffset? Before { get; set; } [JsonPropertyName("commits-before")] [JsonPropertyDescription("Commits before this date will be ignored. Format: yyyy-MM-ddTHH:mm:ss.")] @@ -14,7 +14,7 @@ internal record IgnoreConfiguration : IIgnoreConfiguration public string? BeforeString { get => Before?.ToString("yyyy-MM-ddTHH:mm:ssZ"); - init => Before = value is null ? null : DateTimeOffset.Parse(value, CultureInfo.InvariantCulture); + set => Before = value is null ? null : DateTimeOffset.Parse(value, CultureInfo.InvariantCulture); } [JsonIgnore] @@ -22,13 +22,13 @@ public string? BeforeString [JsonPropertyName("sha")] [JsonPropertyDescription("A sequence of SHAs to be excluded from the version calculations.")] - public HashSet<string> Shas { get; init; } = []; + public HashSet<string> Shas { get; set; } = []; IReadOnlySet<string> IIgnoreConfiguration.Paths => Paths; [JsonPropertyName("paths")] [JsonPropertyDescription("A sequence of file paths to be excluded from the version calculations.")] - public HashSet<string> Paths { get; init; } = []; + public HashSet<string> Paths { get; set; } = []; [JsonIgnore] public bool IsEmpty => Before == null && Shas.Count == 0 && Paths.Count == 0; diff --git a/src/GitVersion.Configuration/PreventIncrementConfiguration.cs b/src/GitVersion.Configuration/PreventIncrementConfiguration.cs index 757647293b..37661d9762 100644 --- a/src/GitVersion.Configuration/PreventIncrementConfiguration.cs +++ b/src/GitVersion.Configuration/PreventIncrementConfiguration.cs @@ -6,13 +6,13 @@ internal class PreventIncrementConfiguration : IPreventIncrementConfiguration { [JsonPropertyName("of-merged-branch")] [JsonPropertyDescription("Prevent increment when branch merged.")] - public bool? OfMergedBranch { get; internal init; } + public bool? OfMergedBranch { get; set; } [JsonPropertyName("when-branch-merged")] [JsonPropertyDescription("Prevent increment when branch merged.")] - public bool? WhenBranchMerged { get; internal init; } + public bool? WhenBranchMerged { get; set; } [JsonPropertyName("when-current-commit-tagged")] [JsonPropertyDescription("This branch related property controls the behavior whether to use the tagged (value set to true) or the incremented (value set to false) semantic version. Defaults to true.")] - public bool? WhenCurrentCommitTagged { get; internal init; } + public bool? WhenCurrentCommitTagged { get; set; } } From d115db1b469dd3f4fdd950ac497afd1d023d9a7a Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Thu, 19 Mar 2026 16:57:32 +0100 Subject: [PATCH 247/358] feat(yaml): Upgrade to SharpYaml for improved YAML processing f8 --- src/Directory.Packages.props | 2 +- .../Configuration/IgnoreConfigurationTests.cs | 15 ++- .../ConfigurationProvider.cs | 2 +- .../ConfigurationSerializer.cs | 125 +++++++++++++----- .../ConfigurationYamlContext.cs | 13 ++ .../GitVersion.Configuration.csproj | 2 +- .../VersionStrategiesConverter.cs | 101 ++++++++++---- 7 files changed, 198 insertions(+), 62 deletions(-) create mode 100644 src/GitVersion.Configuration/ConfigurationYamlContext.cs diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 049122f0ac..2abada83a1 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -40,6 +40,7 @@ <PackageVersion Include="NUnit" Version="4.5.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.12.0" /> <PackageVersion Include="NUnit3TestAdapter" Version="6.1.0" /> + <PackageVersion Include="SharpYaml" Version="3.4.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> <PackageVersion Include="System.Collections.Immutable" Version="10.0.5" /> <PackageVersion Include="System.Drawing.Common" Version="10.0.5" /> @@ -48,7 +49,6 @@ <PackageVersion Include="System.Reflection.Metadata" Version="10.0.5" /> <PackageVersion Include="System.Security.Cryptography.Xml" Version="10.0.5" /> <PackageVersion Include="System.Text.Json" Version="10.0.5" /> - <PackageVersion Include="YamlDotNet" Version="16.3.0" /> </ItemGroup> <ItemGroup Condition=" '$(MicrosoftBuildVersion)' != '' "> <PackageVersion Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" /> diff --git a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs index 1eccacccca..bf8ab03cd9 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs @@ -1,5 +1,7 @@ +using System.Globalization; using GitVersion.Core.Tests.Helpers; -using YamlDotNet.Core; +using GitVersion.VersionCalculation; +using SharpYaml; namespace GitVersion.Configuration.Tests; @@ -71,6 +73,17 @@ public void WhenBadDateFormatShouldFail() Should.Throw<YamlException>(() => serializer.ReadConfiguration(yaml)); } + [Test] + public void ShouldSupportScalarVersionStrategiesOverrideFormat() + { + const string yaml = "strategies: ConfiguredNextVersion, TaggedCommit"; + + var configuration = serializer.ReadConfiguration(yaml); + + configuration.ShouldNotBeNull(); + configuration.VersionStrategy.ShouldBe(VersionStrategies.ConfiguredNextVersion | VersionStrategies.TaggedCommit); + } + [Test] public void NewInstanceShouldBeEmpty() { diff --git a/src/GitVersion.Configuration/ConfigurationProvider.cs b/src/GitVersion.Configuration/ConfigurationProvider.cs index 0605dc07a8..d0ce12c659 100644 --- a/src/GitVersion.Configuration/ConfigurationProvider.cs +++ b/src/GitVersion.Configuration/ConfigurationProvider.cs @@ -2,7 +2,7 @@ using GitVersion.Configuration.Workflows; using GitVersion.Extensions; using GitVersion.Logging; -using YamlDotNet.Core; +using SharpYaml; namespace GitVersion.Configuration; diff --git a/src/GitVersion.Configuration/ConfigurationSerializer.cs b/src/GitVersion.Configuration/ConfigurationSerializer.cs index 5517252772..e3fa4b13e5 100644 --- a/src/GitVersion.Configuration/ConfigurationSerializer.cs +++ b/src/GitVersion.Configuration/ConfigurationSerializer.cs @@ -1,46 +1,111 @@ -using YamlDotNet.Serialization; -using YamlDotNet.Serialization.NamingConventions; -using YamlDotNet.Serialization.TypeInspectors; +using SharpYaml; namespace GitVersion.Configuration; internal class ConfigurationSerializer : IConfigurationSerializer { - private static IDeserializer Deserializer => new DeserializerBuilder() - .WithNamingConvention(HyphenatedNamingConvention.Instance) - .WithTypeConverter(VersionStrategiesConverter.Instance) - .WithTypeInspector(inspector => new JsonPropertyNameInspector(inspector)) - .Build(); - - private static ISerializer Serializer => new SerializerBuilder() - .ConfigureDefaultValuesHandling(DefaultValuesHandling.OmitNull) - .WithTypeInspector(inspector => new JsonPropertyNameInspector(inspector)) - .WithNamingConvention(HyphenatedNamingConvention.Instance).Build(); - - public T Deserialize<T>(string input) => Deserializer.Deserialize<T>(input); - public string Serialize(object graph) => Serializer.Serialize(graph); + private static readonly ConfigurationYamlContext GeneratedContext = ConfigurationYamlContext.Default; + + private static readonly YamlSerializerOptions SerializerOptions = new() + { + PropertyNamingPolicy = HyphenatedJsonNamingPolicy.Instance, + DefaultIgnoreCondition = YamlIgnoreCondition.WhenWritingNull, + Converters = [VersionStrategiesConverter.Instance] + }; + + public T Deserialize<T>(string input) + { + if (typeof(T) == typeof(Dictionary<object, object?>)) + { + var graph = YamlSerializer.Deserialize<Dictionary<string, object?>>(input, SerializerOptions); + return (T)(object)ConvertToObjectDictionary(graph); + } + + if (typeof(T) == typeof(GitVersionConfiguration)) + { + try + { + return (T)(object)YamlSerializer.Deserialize<GitVersionConfiguration>(input, GeneratedContext)!; + } + catch (Exception exception) when (exception is not YamlException) + { + throw new YamlException(exception.Message, exception); + } + } + + return YamlSerializer.Deserialize<T>(input, SerializerOptions)!; + } + + public string Serialize(object graph) + => YamlSerializer.Serialize(graph, SerializerOptions); + public IGitVersionConfiguration? ReadConfiguration(string input) => Deserialize<GitVersionConfiguration?>(input); - private sealed class JsonPropertyNameInspector(ITypeInspector innerTypeDescriptor) : TypeInspectorSkeleton + private static Dictionary<object, object?> ConvertToObjectDictionary(IReadOnlyDictionary<string, object?>? source) { - public override string GetEnumName(Type enumType, string name) => innerTypeDescriptor.GetEnumName(enumType, name); + if (source is null) return []; - public override string GetEnumValue(object enumValue) => innerTypeDescriptor.GetEnumValue(enumValue); + Dictionary<object, object?> result = []; + foreach (var item in source) + { + result[item.Key] = ConvertValue(item.Value); + } - public override IEnumerable<IPropertyDescriptor> GetProperties(Type type, object? container) => - innerTypeDescriptor.GetProperties(type, container) - .Where(p => p.GetCustomAttribute<JsonIgnoreAttribute>() == null) - .Select(IPropertyDescriptor (p) => + return result; + } + + private static object? ConvertValue(object? value) => value switch + { + IReadOnlyDictionary<string, object?> dictionary => ConvertToObjectDictionary(dictionary), + IDictionary<string, object?> dictionary => ConvertToObjectDictionary(new Dictionary<string, object?>(dictionary)), + IList list => ConvertList(list), + _ => value + }; + + private static List<object?> ConvertList(IList list) + { + List<object?> result = []; + foreach (var item in list) + { + result.Add(ConvertValue(item)); + } + + return result; + } + + private sealed class HyphenatedJsonNamingPolicy : JsonNamingPolicy + { + public static JsonNamingPolicy Instance { get; } = new HyphenatedJsonNamingPolicy(); + + public override string ConvertName(string name) + { + if (string.IsNullOrEmpty(name)) return name; + + var builder = new StringBuilder(name.Length + 8); + for (var index = 0; index < name.Length; index++) + { + var current = name[index]; + if (char.IsUpper(current)) { - var descriptor = new PropertyDescriptor(p); - var member = p.GetCustomAttribute<JsonPropertyNameAttribute>(); - if (member is not null) + var hasPrevious = index > 0; + var hasNext = index + 1 < name.Length; + var previousIsLowerOrDigit = hasPrevious && (char.IsLower(name[index - 1]) || char.IsDigit(name[index - 1])); + var nextIsLower = hasNext && char.IsLower(name[index + 1]); + + if (hasPrevious && (previousIsLowerOrDigit || nextIsLower)) { - descriptor.Name = member.Name; + builder.Append('-'); } - return descriptor; - }) - .OrderBy(p => p.Order); + builder.Append(char.ToLowerInvariant(current)); + } + else + { + builder.Append(current); + } + } + + return builder.ToString(); + } } } diff --git a/src/GitVersion.Configuration/ConfigurationYamlContext.cs b/src/GitVersion.Configuration/ConfigurationYamlContext.cs new file mode 100644 index 0000000000..e76e9dde15 --- /dev/null +++ b/src/GitVersion.Configuration/ConfigurationYamlContext.cs @@ -0,0 +1,13 @@ +using SharpYaml; +using SharpYaml.Serialization; + +namespace GitVersion.Configuration; + +[YamlSourceGenerationOptions( + DefaultIgnoreCondition = YamlIgnoreCondition.WhenWritingNull, + Converters = [typeof(VersionStrategiesConverter)])] +[YamlSerializable(typeof(GitVersionConfiguration))] +[YamlSerializable(typeof(BranchConfiguration))] +[YamlSerializable(typeof(PreventIncrementConfiguration))] +[YamlSerializable(typeof(IgnoreConfiguration))] +internal partial class ConfigurationYamlContext : YamlSerializerContext; diff --git a/src/GitVersion.Configuration/GitVersion.Configuration.csproj b/src/GitVersion.Configuration/GitVersion.Configuration.csproj index f4a84de083..79f5abf2d5 100644 --- a/src/GitVersion.Configuration/GitVersion.Configuration.csproj +++ b/src/GitVersion.Configuration/GitVersion.Configuration.csproj @@ -9,7 +9,7 @@ </ItemGroup> <ItemGroup> - <PackageReference Include="YamlDotNet" /> + <PackageReference Include="SharpYaml" /> </ItemGroup> <ItemGroup> diff --git a/src/GitVersion.Configuration/VersionStrategiesConverter.cs b/src/GitVersion.Configuration/VersionStrategiesConverter.cs index 9f82f82c70..8a5a63b1c8 100644 --- a/src/GitVersion.Configuration/VersionStrategiesConverter.cs +++ b/src/GitVersion.Configuration/VersionStrategiesConverter.cs @@ -1,54 +1,99 @@ using GitVersion.VersionCalculation; -using YamlDotNet.Core; -using YamlDotNet.Core.Events; -using YamlDotNet.Serialization; -using YamlDotNet.Serialization.NamingConventions; +using SharpYaml; +using SharpYaml.Serialization; namespace GitVersion.Configuration; -internal class VersionStrategiesConverter : IYamlTypeConverter +internal sealed class VersionStrategiesConverter : YamlConverter<VersionStrategies[]> { - public static readonly IYamlTypeConverter Instance = new VersionStrategiesConverter(); + public static YamlConverter Instance { get; } = new VersionStrategiesConverter(); - public bool Accepts(Type type) => type == typeof(VersionStrategies[]); - - public object ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeserializer) + public override VersionStrategies[] Read(YamlReader reader) { List<VersionStrategies> strategies = []; - if (parser.TryConsume<SequenceStart>(out _)) + if (reader.TokenType == YamlTokenType.StartSequence) { - while (!parser.TryConsume<SequenceEnd>(out _)) + reader.Read(); + while (reader.TokenType != YamlTokenType.EndSequence) { - var data = parser.Consume<Scalar>().Value; + if (reader.TokenType != YamlTokenType.Scalar) + { + throw new YamlException(reader.SourceName, reader.Start, reader.End, "Expected a scalar value while reading version strategies."); + } - var strategy = Enum.Parse<VersionStrategies>(data); - strategies.Add(strategy); + strategies.Add(ParseStrategy(reader.GetScalarValue())); + reader.Read(); } + + reader.Read(); + return [.. strategies]; } - else + + if (reader.TokenType != YamlTokenType.Scalar) { - var data = parser.Consume<Scalar>().Value; + throw new YamlException(reader.SourceName, reader.Start, reader.End, "Expected a scalar or sequence while reading version strategies."); + } - var deserializer = new DeserializerBuilder() - .WithNamingConvention(UnderscoredNamingConvention.Instance) - .Build(); + var scalar = reader.GetScalarValue(); + reader.Read(); - strategies = deserializer.Deserialize<List<VersionStrategies>>(data); + foreach (var item in SplitScalarList(scalar)) + { + strategies.Add(ParseStrategy(item)); } - return strategies.ToArray(); + return [.. strategies]; } - public void WriteYaml(IEmitter emitter, object? value, Type type, ObjectSerializer serializer) + public override void Write(YamlWriter writer, VersionStrategies[]? value) { - var strategies = (VersionStrategies[])value!; + if (value is null) + { + writer.WriteNullValue(); + return; + } - var s = new SerializerBuilder() - .JsonCompatible() - .Build(); - var data = s.Serialize(strategies); + writer.WriteStartSequence(); + foreach (var strategy in value) + { + writer.WriteString(strategy.ToString()); + } + writer.WriteEndSequence(); + } - emitter.Emit(new Scalar(data)); + private static IEnumerable<string> SplitScalarList(string scalar) + { + var trimmed = scalar.Trim(); + if (trimmed.Length == 0) yield break; + + if (trimmed.StartsWith('[') && trimmed.EndsWith(']')) + { + trimmed = trimmed[1..^1]; + } + + foreach (var item in trimmed.Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries)) + { + yield return item; + } } + + private static VersionStrategies ParseStrategy(string value) + { + if (Enum.TryParse<VersionStrategies>(value, ignoreCase: false, out var exactMatch)) + { + return exactMatch; + } + + var normalizedValue = Normalize(value); + foreach (var enumValue in Enum.GetValues<VersionStrategies>().Where(enumValue => Normalize(enumValue.ToString()) == normalizedValue)) + { + return enumValue; + } + + throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown version strategy value."); + } + + private static string Normalize(string value) + => new(value.Where(char.IsLetterOrDigit).Select(char.ToUpperInvariant).ToArray()); } From 2acc3336c303b97ae5be7446f9e055205223adc0 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Thu, 19 Mar 2026 16:57:32 +0100 Subject: [PATCH 248/358] fix(configuration): Enhance YAML merging logic for lists --- .../ConfigurationHelper.cs | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/GitVersion.Configuration/ConfigurationHelper.cs b/src/GitVersion.Configuration/ConfigurationHelper.cs index 0410558782..a83d714762 100644 --- a/src/GitVersion.Configuration/ConfigurationHelper.cs +++ b/src/GitVersion.Configuration/ConfigurationHelper.cs @@ -58,7 +58,16 @@ private static void Merge(IDictionary<object, object?> dictionary, IReadOnlyDict break; } - case null or string or IList<object>: + case IList: + { + if (anotherDictionary.TryGetValue(item.Key, out var value)) + { + dictionary[item.Key] = value; + } + + break; + } + default: { if (anotherDictionary.TryGetValue(item.Key, out var value)) { @@ -83,7 +92,16 @@ private static void Merge(IDictionary<object, object?> dictionary, IReadOnlyDict dictionary.Add(item.Key, anotherDictionaryValue); break; } - case null or string or IList<object>: + case IList: + { + if (!dictionary.ContainsKey(item.Key)) + { + dictionary.Add(item.Key, item.Value); + } + + break; + } + default: { if (!dictionary.ContainsKey(item.Key)) { From 535789b1346351f2f7b1df441a0362d5dbcd6f56 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Thu, 19 Mar 2026 16:57:32 +0100 Subject: [PATCH 249/358] style(configuration): Standardize YAML configuration patterns and formatting --- docs/input/docs/reference/configuration.md | 268 +++++++++--------- docs/input/docs/workflows/GitFlow/v1.yml | 124 ++++---- docs/input/docs/workflows/GitHubFlow/v1.yml | 92 +++--- .../docs/workflows/TrunkBased/preview1.yml | 76 ++--- ...riteOutEffectiveConfiguration.approved.txt | 124 ++++---- .../Configuration/IgnoreConfigurationTests.cs | 2 +- .../Workflows/approved/GitFlow/v1.yml | 124 ++++---- .../Workflows/approved/GitHubFlow/v1.yml | 92 +++--- .../approved/TrunkBased/preview1.yml | 76 ++--- .../VersionStrategiesConverter.cs | 8 +- 10 files changed, 495 insertions(+), 491 deletions(-) diff --git a/docs/input/docs/reference/configuration.md b/docs/input/docs/reference/configuration.md index 2fbd2bebb1..a4955c9804 100644 --- a/docs/input/docs/reference/configuration.md +++ b/docs/input/docs/reference/configuration.md @@ -41,26 +41,42 @@ The built-in configuration for the `GitFlow` workflow (`workflow: GitFlow/v1`) l <!-- snippet: /docs/workflows/GitFlow/v1.yml --> <a id='snippet-/docs/workflows/GitFlow/v1.yml'></a> ```yml +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: develop: mode: ContinuousDelivery @@ -72,7 +88,7 @@ branches: track-merge-message: true regex: ^dev(elop)?(ment)?$ source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: true is-release-branch: false @@ -85,7 +101,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -100,10 +116,10 @@ branches: of-merged-branch: true when-current-commit-tagged: false track-merge-target: false - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -111,37 +127,37 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - develop - - main - - release - - support - - hotfix + - develop + - main + - release + - support + - hotfix is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - develop - - main - - release - - feature - - support - - hotfix + - develop + - main + - release + - feature + - support + - hotfix is-source-branch-for: [] pre-release-weight: 30000 hotfix: @@ -150,10 +166,10 @@ branches: increment: Inherit prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] is-release-branch: true is-main-branch: false @@ -164,9 +180,9 @@ branches: prevent-increment: of-merged-branch: true track-merge-target: false - regex: ^support[\/-](?<BranchName>.+) + regex: "^support[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: false @@ -174,26 +190,35 @@ branches: pre-release-weight: 55000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: true - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - develop - - release - - feature - - pull-request - - hotfix - - support + - main + - develop + - release + - feature + - pull-request + - hotfix + - support is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] +``` +<sup><a href='/docs/workflows/GitFlow/v1.yml#L1-L167' title='Snippet source file'>snippet source</a> | <a href='#snippet-/docs/workflows/GitFlow/v1.yml' title='Start of snippet'>anchor</a></sup> +<!-- endSnippet --> + +The supported built-in configuration for the `GitHubFlow` workflow (`workflow: GitHubFlow/v1`) looks like: + +<!-- snippet: /docs/workflows/GitHubFlow/v1.yml --> +<a id='snippet-/docs/workflows/GitHubFlow/v1.yml'></a> +```yml mode: ContinuousDelivery -label: '{BranchName}' +label: "{BranchName}" increment: Inherit prevent-increment: of-merged-branch: false @@ -208,35 +233,26 @@ is-source-branch-for: [] tracks-release-branches: false is-release-branch: false is-main-branch: false -``` -<sup><a href='/docs/workflows/GitFlow/v1.yml#L1-L167' title='Snippet source file'>snippet source</a> | <a href='#snippet-/docs/workflows/GitFlow/v1.yml' title='Start of snippet'>anchor</a></sup> -<!-- endSnippet --> - -The supported built-in configuration for the `GitHubFlow` workflow (`workflow: GitHubFlow/v1`) looks like: - -<!-- snippet: /docs/workflows/GitHubFlow/v1.yml --> -<a id='snippet-/docs/workflows/GitHubFlow/v1.yml'></a> -```yml assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: main: label: '' @@ -245,7 +261,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -262,9 +278,9 @@ branches: when-current-commit-tagged: false track-merge-target: false track-merge-message: true - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -272,53 +288,62 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - main - - release + - main + - release is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - main - - release - - feature + - main + - release + - feature is-source-branch-for: [] pre-release-weight: 30000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: false - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - release - - feature - - pull-request + - main + - release + - feature + - pull-request is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] +``` +<sup><a href='/docs/workflows/GitHubFlow/v1.yml#L1-L116' title='Snippet source file'>snippet source</a> | <a href='#snippet-/docs/workflows/GitHubFlow/v1.yml' title='Start of snippet'>anchor</a></sup> +<!-- endSnippet --> + +The preview built-in configuration (experimental usage only) for the `TrunkBased` workflow (`workflow: TrunkBased/preview1`) looks like: + +<!-- snippet: /docs/workflows/TrunkBased/preview1.yml --> +<a id='snippet-/docs/workflows/TrunkBased/preview1.yml'></a> +```yml mode: ContinuousDelivery -label: '{BranchName}' +label: "{BranchName}" increment: Inherit prevent-increment: of-merged-branch: false @@ -333,31 +358,22 @@ is-source-branch-for: [] tracks-release-branches: false is-release-branch: false is-main-branch: false -``` -<sup><a href='/docs/workflows/GitHubFlow/v1.yml#L1-L116' title='Snippet source file'>snippet source</a> | <a href='#snippet-/docs/workflows/GitHubFlow/v1.yml' title='Start of snippet'>anchor</a></sup> -<!-- endSnippet --> - -The preview built-in configuration (experimental usage only) for the `TrunkBased` workflow (`workflow: TrunkBased/preview1`) looks like: - -<!-- snippet: /docs/workflows/TrunkBased/preview1.yml --> -<a id='snippet-/docs/workflows/TrunkBased/preview1.yml'></a> -```yml assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- ConfiguredNextVersion -- Mainline + - ConfiguredNextVersion + - Mainline branches: main: mode: ContinuousDeployment @@ -367,7 +383,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -376,73 +392,57 @@ branches: pre-release-weight: 55000 feature: mode: ContinuousDelivery - label: '{BranchName}' + label: "{BranchName}" increment: Minor prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 hotfix: mode: ContinuousDelivery - label: '{BranchName}' + label: "{BranchName}" increment: Patch prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] is-release-branch: true is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - main - - feature - - hotfix + - main + - feature + - hotfix is-source-branch-for: [] pre-release-weight: 30000 unknown: increment: Patch prevent-increment: when-current-commit-tagged: false - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] pre-release-weight: 30000 ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false ``` <sup><a href='/docs/workflows/TrunkBased/preview1.yml#L1-L101' title='Snippet source file'>snippet source</a> | <a href='#snippet-/docs/workflows/TrunkBased/preview1.yml' title='Start of snippet'>anchor</a></sup> <!-- endSnippet --> diff --git a/docs/input/docs/workflows/GitFlow/v1.yml b/docs/input/docs/workflows/GitFlow/v1.yml index dd44250ac5..63c7855dc8 100644 --- a/docs/input/docs/workflows/GitFlow/v1.yml +++ b/docs/input/docs/workflows/GitFlow/v1.yml @@ -1,23 +1,39 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: develop: mode: ContinuousDelivery @@ -29,7 +45,7 @@ branches: track-merge-message: true regex: ^dev(elop)?(ment)?$ source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: true is-release-branch: false @@ -42,7 +58,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -57,10 +73,10 @@ branches: of-merged-branch: true when-current-commit-tagged: false track-merge-target: false - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -68,37 +84,37 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - develop - - main - - release - - support - - hotfix + - develop + - main + - release + - support + - hotfix is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - develop - - main - - release - - feature - - support - - hotfix + - develop + - main + - release + - feature + - support + - hotfix is-source-branch-for: [] pre-release-weight: 30000 hotfix: @@ -107,10 +123,10 @@ branches: increment: Inherit prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] is-release-branch: true is-main-branch: false @@ -121,9 +137,9 @@ branches: prevent-increment: of-merged-branch: true track-merge-target: false - regex: ^support[\/-](?<BranchName>.+) + regex: "^support[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: false @@ -131,37 +147,21 @@ branches: pre-release-weight: 55000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: true - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - develop - - release - - feature - - pull-request - - hotfix - - support + - main + - develop + - release + - feature + - pull-request + - hotfix + - support is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/docs/input/docs/workflows/GitHubFlow/v1.yml b/docs/input/docs/workflows/GitHubFlow/v1.yml index be7da3a729..b45381a41a 100644 --- a/docs/input/docs/workflows/GitHubFlow/v1.yml +++ b/docs/input/docs/workflows/GitHubFlow/v1.yml @@ -1,23 +1,39 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: main: label: '' @@ -26,7 +42,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -43,9 +59,9 @@ branches: when-current-commit-tagged: false track-merge-target: false track-merge-message: true - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -53,64 +69,48 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - main - - release + - main + - release is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - main - - release - - feature + - main + - release + - feature is-source-branch-for: [] pre-release-weight: 30000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: false - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - release - - feature - - pull-request + - main + - release + - feature + - pull-request is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/docs/input/docs/workflows/TrunkBased/preview1.yml b/docs/input/docs/workflows/TrunkBased/preview1.yml index c261444d9f..0b8cfcda4f 100644 --- a/docs/input/docs/workflows/TrunkBased/preview1.yml +++ b/docs/input/docs/workflows/TrunkBased/preview1.yml @@ -1,19 +1,35 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- ConfiguredNextVersion -- Mainline + - ConfiguredNextVersion + - Mainline branches: main: mode: ContinuousDeployment @@ -23,7 +39,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -32,70 +48,54 @@ branches: pre-release-weight: 55000 feature: mode: ContinuousDelivery - label: '{BranchName}' + label: "{BranchName}" increment: Minor prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 hotfix: mode: ContinuousDelivery - label: '{BranchName}' + label: "{BranchName}" increment: Patch prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] is-release-branch: true is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - main - - feature - - hotfix + - main + - feature + - hotfix is-source-branch-for: [] pre-release-weight: 30000 unknown: increment: Patch prevent-increment: when-current-commit-tagged: false - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] pre-release-weight: 30000 ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.CanWriteOutEffectiveConfiguration.approved.txt b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.CanWriteOutEffectiveConfiguration.approved.txt index dd44250ac5..63c7855dc8 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.CanWriteOutEffectiveConfiguration.approved.txt +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.CanWriteOutEffectiveConfiguration.approved.txt @@ -1,23 +1,39 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: develop: mode: ContinuousDelivery @@ -29,7 +45,7 @@ branches: track-merge-message: true regex: ^dev(elop)?(ment)?$ source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: true is-release-branch: false @@ -42,7 +58,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -57,10 +73,10 @@ branches: of-merged-branch: true when-current-commit-tagged: false track-merge-target: false - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -68,37 +84,37 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - develop - - main - - release - - support - - hotfix + - develop + - main + - release + - support + - hotfix is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - develop - - main - - release - - feature - - support - - hotfix + - develop + - main + - release + - feature + - support + - hotfix is-source-branch-for: [] pre-release-weight: 30000 hotfix: @@ -107,10 +123,10 @@ branches: increment: Inherit prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] is-release-branch: true is-main-branch: false @@ -121,9 +137,9 @@ branches: prevent-increment: of-merged-branch: true track-merge-target: false - regex: ^support[\/-](?<BranchName>.+) + regex: "^support[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: false @@ -131,37 +147,21 @@ branches: pre-release-weight: 55000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: true - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - develop - - release - - feature - - pull-request - - hotfix - - support + - main + - develop + - release + - feature + - pull-request + - hotfix + - support is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs index bf8ab03cd9..799a3c502f 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs @@ -26,7 +26,7 @@ public void CanDeserialize() configuration.Ignore.ShouldNotBeNull(); configuration.Ignore.Shas.ShouldNotBeEmpty(); configuration.Ignore.Shas.ShouldBe(["b6c0c9fda88830ebcd563e500a5a7da5a1658e98"]); - configuration.Ignore.Before.ShouldBe(DateTimeOffset.Parse("2015-10-23T12:23:15")); + configuration.Ignore.Before.ShouldBe(DateTimeOffset.Parse("2015-10-23T12:23:15", CultureInfo.InvariantCulture)); } [Test] diff --git a/src/GitVersion.Configuration.Tests/Workflows/approved/GitFlow/v1.yml b/src/GitVersion.Configuration.Tests/Workflows/approved/GitFlow/v1.yml index dd44250ac5..63c7855dc8 100644 --- a/src/GitVersion.Configuration.Tests/Workflows/approved/GitFlow/v1.yml +++ b/src/GitVersion.Configuration.Tests/Workflows/approved/GitFlow/v1.yml @@ -1,23 +1,39 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: develop: mode: ContinuousDelivery @@ -29,7 +45,7 @@ branches: track-merge-message: true regex: ^dev(elop)?(ment)?$ source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: true is-release-branch: false @@ -42,7 +58,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -57,10 +73,10 @@ branches: of-merged-branch: true when-current-commit-tagged: false track-merge-target: false - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -68,37 +84,37 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - develop - - main - - release - - support - - hotfix + - develop + - main + - release + - support + - hotfix is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - develop - - main - - release - - feature - - support - - hotfix + - develop + - main + - release + - feature + - support + - hotfix is-source-branch-for: [] pre-release-weight: 30000 hotfix: @@ -107,10 +123,10 @@ branches: increment: Inherit prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main - - support + - main + - support is-source-branch-for: [] is-release-branch: true is-main-branch: false @@ -121,9 +137,9 @@ branches: prevent-increment: of-merged-branch: true track-merge-target: false - regex: ^support[\/-](?<BranchName>.+) + regex: "^support[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: false @@ -131,37 +147,21 @@ branches: pre-release-weight: 55000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: true - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - develop - - release - - feature - - pull-request - - hotfix - - support + - main + - develop + - release + - feature + - pull-request + - hotfix + - support is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/src/GitVersion.Configuration.Tests/Workflows/approved/GitHubFlow/v1.yml b/src/GitVersion.Configuration.Tests/Workflows/approved/GitHubFlow/v1.yml index be7da3a729..b45381a41a 100644 --- a/src/GitVersion.Configuration.Tests/Workflows/approved/GitHubFlow/v1.yml +++ b/src/GitVersion.Configuration.Tests/Workflows/approved/GitHubFlow/v1.yml @@ -1,23 +1,39 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- Fallback -- ConfiguredNextVersion -- MergeMessage -- TaggedCommit -- TrackReleaseBranches -- VersionInBranchName + - Fallback + - ConfiguredNextVersion + - MergeMessage + - TaggedCommit + - TrackReleaseBranches + - VersionInBranchName branches: main: label: '' @@ -26,7 +42,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -43,9 +59,9 @@ branches: when-current-commit-tagged: false track-merge-target: false track-merge-message: true - regex: ^releases?[\/-](?<BranchName>.+) + regex: "^releases?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] tracks-release-branches: false is-release-branch: true @@ -53,64 +69,48 @@ branches: pre-release-weight: 30000 feature: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - main - - release + - main + - release is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - main - - release - - feature + - main + - release + - feature is-source-branch-for: [] pre-release-weight: 30000 unknown: mode: ManualDeployment - label: '{BranchName}' + label: "{BranchName}" increment: Inherit prevent-increment: when-current-commit-tagged: false track-merge-message: false - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main - - release - - feature - - pull-request + - main + - release + - feature + - pull-request is-source-branch-for: [] is-main-branch: false ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/src/GitVersion.Configuration.Tests/Workflows/approved/TrunkBased/preview1.yml b/src/GitVersion.Configuration.Tests/Workflows/approved/TrunkBased/preview1.yml index c261444d9f..0b8cfcda4f 100644 --- a/src/GitVersion.Configuration.Tests/Workflows/approved/TrunkBased/preview1.yml +++ b/src/GitVersion.Configuration.Tests/Workflows/approved/TrunkBased/preview1.yml @@ -1,19 +1,35 @@ +mode: ContinuousDelivery +label: "{BranchName}" +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +source-branches: [] +is-source-branch-for: [] +tracks-release-branches: false +is-release-branch: false +is-main-branch: false assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatch -tag-prefix: '[vV]?' -version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).* -major-version-bump-message: \+semver:\s?(breaking|major) -minor-version-bump-message: \+semver:\s?(feature|minor) -patch-version-bump-message: \+semver:\s?(fix|patch) -no-bump-message: \+semver:\s?(none|skip) +tag-prefix: "[vV]?" +version-in-branch-pattern: "(?<version>[vV]?\\d+(\\.\\d+)?(\\.\\d+)?).*" +major-version-bump-message: "\\+semver:\\s?(breaking|major)" +minor-version-bump-message: "\\+semver:\\s?(feature|minor)" +patch-version-bump-message: "\\+semver:\\s?(fix|patch)" +no-bump-message: "\\+semver:\\s?(none|skip)" tag-pre-release-weight: 60000 commit-date-format: yyyy-MM-dd merge-message-formats: {} update-build-number: true semantic-version-format: Strict strategies: -- ConfiguredNextVersion -- Mainline + - ConfiguredNextVersion + - Mainline branches: main: mode: ContinuousDeployment @@ -23,7 +39,7 @@ branches: of-merged-branch: true track-merge-target: false track-merge-message: true - regex: ^master$|^main$ + regex: "^master$|^main$" source-branches: [] is-source-branch-for: [] tracks-release-branches: false @@ -32,70 +48,54 @@ branches: pre-release-weight: 55000 feature: mode: ContinuousDelivery - label: '{BranchName}' + label: "{BranchName}" increment: Minor prevent-increment: when-current-commit-tagged: false track-merge-message: true - regex: ^features?[\/-](?<BranchName>.+) + regex: "^features?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] is-main-branch: false pre-release-weight: 30000 hotfix: mode: ContinuousDelivery - label: '{BranchName}' + label: "{BranchName}" increment: Patch prevent-increment: when-current-commit-tagged: false - regex: ^hotfix(es)?[\/-](?<BranchName>.+) + regex: "^hotfix(es)?[\\/-](?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] is-release-branch: true is-main-branch: false pre-release-weight: 30000 pull-request: mode: ContinuousDelivery - label: PullRequest{Number} + label: "PullRequest{Number}" increment: Inherit prevent-increment: of-merged-branch: true when-current-commit-tagged: false track-merge-message: true - regex: ^(pull-requests|pull|pr)[\/-](?<Number>\d*) + regex: "^(pull-requests|pull|pr)[\\/-](?<Number>\\d*)" source-branches: - - main - - feature - - hotfix + - main + - feature + - hotfix is-source-branch-for: [] pre-release-weight: 30000 unknown: increment: Patch prevent-increment: when-current-commit-tagged: false - regex: (?<BranchName>.+) + regex: "(?<BranchName>.+)" source-branches: - - main + - main is-source-branch-for: [] pre-release-weight: 30000 ignore: sha: [] paths: [] -mode: ContinuousDelivery -label: '{BranchName}' -increment: Inherit -prevent-increment: - of-merged-branch: false - when-branch-merged: false - when-current-commit-tagged: true -track-merge-target: false -track-merge-message: true -commit-message-incrementing: Enabled -regex: '' -source-branches: [] -is-source-branch-for: [] -tracks-release-branches: false -is-release-branch: false -is-main-branch: false diff --git a/src/GitVersion.Configuration/VersionStrategiesConverter.cs b/src/GitVersion.Configuration/VersionStrategiesConverter.cs index 8a5a63b1c8..0f80eb1631 100644 --- a/src/GitVersion.Configuration/VersionStrategiesConverter.cs +++ b/src/GitVersion.Configuration/VersionStrategiesConverter.cs @@ -8,6 +8,10 @@ internal sealed class VersionStrategiesConverter : YamlConverter<VersionStrategi { public static YamlConverter Instance { get; } = new VersionStrategiesConverter(); + private static readonly IReadOnlyDictionary<string, VersionStrategies> NormalizedStrategies = + Enum.GetValues<VersionStrategies>() + .ToDictionary(value => Normalize(value.ToString()), value => value, StringComparer.Ordinal); + public override VersionStrategies[] Read(YamlReader reader) { List<VersionStrategies> strategies = []; @@ -86,9 +90,9 @@ private static VersionStrategies ParseStrategy(string value) } var normalizedValue = Normalize(value); - foreach (var enumValue in Enum.GetValues<VersionStrategies>().Where(enumValue => Normalize(enumValue.ToString()) == normalizedValue)) + if (NormalizedStrategies.TryGetValue(normalizedValue, out var normalizedMatch)) { - return enumValue; + return normalizedMatch; } throw new ArgumentOutOfRangeException(nameof(value), value, "Unknown version strategy value."); From 8f3e6e04becacb9ddf489ef528aaade4be5c6ba0 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Fri, 20 Mar 2026 12:20:06 +0100 Subject: [PATCH 250/358] refactor(configuration): simplify dictionary merge in ConfigurationHelper --- .../ConfigurationHelper.cs | 81 +++++-------------- 1 file changed, 21 insertions(+), 60 deletions(-) diff --git a/src/GitVersion.Configuration/ConfigurationHelper.cs b/src/GitVersion.Configuration/ConfigurationHelper.cs index a83d714762..46917a12d9 100644 --- a/src/GitVersion.Configuration/ConfigurationHelper.cs +++ b/src/GitVersion.Configuration/ConfigurationHelper.cs @@ -45,72 +45,33 @@ public void Override(IReadOnlyDictionary<object, object?> value) private static void Merge(IDictionary<object, object?> dictionary, IReadOnlyDictionary<object, object?> anotherDictionary) { - foreach (var item in dictionary) + foreach (var (key, sourceValue) in anotherDictionary) { - switch (item.Value) + if (dictionary.TryGetValue(key, out var currentValue) + && currentValue is IDictionary<object, object?> currentDictionary + && sourceValue is IReadOnlyDictionary<object, object?> sourceDictionary) { - case IDictionary<object, object?> anotherDictionaryValue: - { - if (anotherDictionary.TryGetValue(item.Key, out var value) && value is IReadOnlyDictionary<object, object?> dictionaryValue) - { - Merge(anotherDictionaryValue, dictionaryValue); - } - - break; - } - case IList: - { - if (anotherDictionary.TryGetValue(item.Key, out var value)) - { - dictionary[item.Key] = value; - } - - break; - } - default: - { - if (anotherDictionary.TryGetValue(item.Key, out var value)) - { - dictionary[item.Key] = value; - } - - break; - } + Merge(currentDictionary, sourceDictionary); + continue; } - } - foreach (var item in anotherDictionary) - { - switch (item.Value) - { - case IReadOnlyDictionary<object, object?> when dictionary.ContainsKey(item.Key): - continue; - case IReadOnlyDictionary<object, object?> dictionaryValue: - { - Dictionary<object, object?> anotherDictionaryValue = []; - Merge(anotherDictionaryValue, dictionaryValue); - dictionary.Add(item.Key, anotherDictionaryValue); - break; - } - case IList: - { - if (!dictionary.ContainsKey(item.Key)) - { - dictionary.Add(item.Key, item.Value); - } + dictionary[key] = sourceValue is IReadOnlyDictionary<object, object?> nestedDictionary + ? CloneDictionary(nestedDictionary) + : sourceValue; + } + } - break; - } - default: - { - if (!dictionary.ContainsKey(item.Key)) - { - dictionary.Add(item.Key, item.Value); - } + private static Dictionary<object, object?> CloneDictionary(IReadOnlyDictionary<object, object?> dictionary) + { + Dictionary<object, object?> cloned = []; - break; - } - } + foreach (var (key, value) in dictionary) + { + cloned[key] = value is IReadOnlyDictionary<object, object?> nestedDictionary + ? CloneDictionary(nestedDictionary) + : value; } + + return cloned; } } From 784abd8f20b1c51cd30de145c39dff004f553460 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Fri, 20 Mar 2026 12:26:09 +0100 Subject: [PATCH 251/358] test(configuration): add coverage for nested override merge behavior --- .../Configuration/ConfigurationHelperTests.cs | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/GitVersion.Configuration.Tests/Configuration/ConfigurationHelperTests.cs diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationHelperTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationHelperTests.cs new file mode 100644 index 0000000000..fee64851b1 --- /dev/null +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationHelperTests.cs @@ -0,0 +1,82 @@ +namespace GitVersion.Configuration.Tests; + +[TestFixture] +public class ConfigurationHelperTests +{ + [Test] + public void Override_Replaces_Nested_Dictionary_With_Scalar_Value() + { + Dictionary<object, object?> original = + new() + { + ["key"] = new Dictionary<object, object?> { ["nested"] = "value" } + }; + var helper = new ConfigurationHelper(original); + + IReadOnlyDictionary<object, object?> source = + new Dictionary<object, object?> + { + ["key"] = "override" + }; + + helper.Override(source); + + helper.Dictionary["key"].ShouldBe("override"); + } + + [Test] + public void Override_Merges_Nested_Dictionaries_Recursively() + { + Dictionary<object, object?> original = + new() + { + ["key"] = new Dictionary<object, object?> + { + ["a"] = 1, + ["b"] = 2 + } + }; + var helper = new ConfigurationHelper(original); + + IReadOnlyDictionary<object, object?> source = + new Dictionary<object, object?> + { + ["key"] = new Dictionary<object, object?> + { + ["b"] = 3, + ["c"] = 4 + } + }; + + helper.Override(source); + + var nested = (IDictionary<object, object?>)helper.Dictionary["key"]!; + nested["a"].ShouldBe(1); + nested["b"].ShouldBe(3); + nested["c"].ShouldBe(4); + } + + [Test] + public void Override_Clones_New_Nested_Dictionaries() + { + Dictionary<object, object?> original = []; + var helper = new ConfigurationHelper(original); + + Dictionary<object, object?> sourceNested = + new() + { + ["a"] = 1 + }; + IReadOnlyDictionary<object, object?> source = + new Dictionary<object, object?> + { + ["key"] = sourceNested + }; + + helper.Override(source); + sourceNested["a"] = 2; + + var nested = (IDictionary<object, object?>)helper.Dictionary["key"]!; + nested["a"].ShouldBe(1); + } +} From 9aa5c8f1967244f8e0ef91c9a28be01f9ecaa7ca Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Fri, 20 Mar 2026 15:50:51 +0100 Subject: [PATCH 252/358] ci(actions): upgrade retry action to v4 --- .github/actions/docker-test/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/docker-test/action.yml b/.github/actions/docker-test/action.yml index caba8d0313..2b9686f419 100644 --- a/.github/actions/docker-test/action.yml +++ b/.github/actions/docker-test/action.yml @@ -15,7 +15,7 @@ runs: using: 'composite' steps: - name: '[Docker Build & Test] DockerHub' - uses: nick-fields/retry@v3 + uses: nick-fields/retry@v4 with: shell: pwsh timeout_minutes: 30 @@ -27,7 +27,7 @@ runs: --docker_distro=${{ inputs.docker_distro }} --docker_registry dockerhub --verbosity=diagnostic - name: '[Docker Build & Test] GitHub' - uses: nick-fields/retry@v3 + uses: nick-fields/retry@v4 with: shell: pwsh timeout_minutes: 30 From 69dbea85a8b2e58425f56be61ab0262e81730ea0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 22 Mar 2026 12:48:03 +0000 Subject: [PATCH 253/358] (deps): Bump NUnit3TestAdapter from 6.1.0 to 6.2.0 --- updated-dependencies: - dependency-name: NUnit3TestAdapter dependency-version: 6.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index cebac31090..42eec33987 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -20,7 +20,7 @@ <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageVersion> - <PackageVersion Include="NUnit3TestAdapter" Version="6.1.0" /> + <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> <PackageVersion Include="Polly" Version="8.6.6" /> <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> From 211db5cc5a35af0c1dc72faa163f76477ea1d2b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 22 Mar 2026 12:48:19 +0000 Subject: [PATCH 254/358] (deps): Bump Scriban from 6.6.0 to 7.0.0 --- updated-dependencies: - dependency-name: Scriban dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- new-cli/GitVersion.Cli.Generator/SystemCommandlineContent.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 42eec33987..508a13c354 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -25,7 +25,7 @@ <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Scriban" Version="6.6.0" /> + <PackageVersion Include="Scriban" Version="7.0.0" /> <PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> diff --git a/new-cli/GitVersion.Cli.Generator/SystemCommandlineContent.cs b/new-cli/GitVersion.Cli.Generator/SystemCommandlineContent.cs index ce2fa4fd75..46f0b16b77 100644 --- a/new-cli/GitVersion.Cli.Generator/SystemCommandlineContent.cs +++ b/new-cli/GitVersion.Cli.Generator/SystemCommandlineContent.cs @@ -15,7 +15,7 @@ namespace {{GeneratedNamespaceName}}; public class {{Model.CommandTypeName}}Impl : Command, ICommandImpl { public string CommandImplName => nameof({{Model.CommandTypeName}}Impl); - {{- if (Model.ParentCommand | string.empty) }} + {{- if (Model.ParentCommand == null || Model.ParentCommand == "") }} public string ParentCommandImplName => string.Empty; {{- else }} public string ParentCommandImplName => nameof({{Model.ParentCommand}}Impl); From 81b4ee9975e73b7ffa14a25602ca48ccd9b01f12 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Sun, 22 Mar 2026 21:45:54 +0100 Subject: [PATCH 255/358] refactor(cli): Adopt PolySharp to manage polyfills and remove custom implementations --- new-cli/Directory.Packages.props | 1 + .../GitVersion.Cli.Generator.csproj | 5 ++ .../CallerArgumentExpressionAttribute.cs | 40 ------------- .../CompilerFeatureRequiredAttribute.cs | 56 ------------------- .../Polyfill/IsExternalInit.cs | 21 ------- .../Polyfill/NotNullAttribute.cs | 26 --------- .../Polyfill/RequiredMemberAttribute.cs | 29 ---------- .../Polyfill/SetsRequiredMembersAttribute.cs | 20 ------- 8 files changed, 6 insertions(+), 192 deletions(-) delete mode 100644 new-cli/GitVersion.Cli.Generator/Polyfill/CallerArgumentExpressionAttribute.cs delete mode 100644 new-cli/GitVersion.Cli.Generator/Polyfill/CompilerFeatureRequiredAttribute.cs delete mode 100644 new-cli/GitVersion.Cli.Generator/Polyfill/IsExternalInit.cs delete mode 100644 new-cli/GitVersion.Cli.Generator/Polyfill/NotNullAttribute.cs delete mode 100644 new-cli/GitVersion.Cli.Generator/Polyfill/RequiredMemberAttribute.cs delete mode 100644 new-cli/GitVersion.Cli.Generator/Polyfill/SetsRequiredMembersAttribute.cs diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 508a13c354..5713f5be3d 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -22,6 +22,7 @@ </PackageVersion> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> <PackageVersion Include="Polly" Version="8.6.6" /> + <PackageVersion Include="PolySharp" Version="1.15.0" /> <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> diff --git a/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj b/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj index d93d7009bb..f54b1f214b 100644 --- a/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj +++ b/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj @@ -6,12 +6,17 @@ <PackageScribanIncludeSource>true</PackageScribanIncludeSource> <SatelliteResourceLanguages>en</SatelliteResourceLanguages> <EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules> + <NoWarn>$(NoWarn);CS8669</NoWarn> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.CSharp" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" PrivateAssets="all" /> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" PrivateAssets="all" /> + <PackageReference Include="PolySharp"> + <PrivateAssets>all</PrivateAssets> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + </PackageReference> <PackageReference Include="Scriban" IncludeAssets="Build" /> <PackageReference Include="System.Text.Json" /> </ItemGroup> diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/CallerArgumentExpressionAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/CallerArgumentExpressionAttribute.cs deleted file mode 100644 index a1f589114f..0000000000 --- a/new-cli/GitVersion.Cli.Generator/Polyfill/CallerArgumentExpressionAttribute.cs +++ /dev/null @@ -1,40 +0,0 @@ -// <auto-generated /> -#pragma warning disable - -#if NETFRAMEWORK || NETSTANDARD || NETCOREAPP2X - -namespace System.Runtime.CompilerServices; - -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using Link = System.ComponentModel.DescriptionAttribute; - -/// <summary> -/// Indicates that a parameter captures the expression passed for another parameter as a string. -/// </summary> -[ExcludeFromCodeCoverage] -[DebuggerNonUserCode] -[AttributeUsage(AttributeTargets.Parameter)] -[Link("https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.callerargumentexpressionattribute")] -#if PolyPublic -public -#endif -sealed class CallerArgumentExpressionAttribute : - Attribute -{ - /// <summary> - /// Initializes a new instance of the <see cref="CallerArgumentExpressionAttribute"/> class. - /// </summary> - /// <param name="parameterName"> - /// The name of the parameter whose expression should be captured as a string. - /// </param> - public CallerArgumentExpressionAttribute(string parameterName) => - ParameterName = parameterName; - - /// <summary> - /// Gets the name of the parameter whose expression should be captured as a string. - /// </summary> - public string ParameterName { get; } -} - -#endif diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/CompilerFeatureRequiredAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/CompilerFeatureRequiredAttribute.cs deleted file mode 100644 index 37cf5ccc71..0000000000 --- a/new-cli/GitVersion.Cli.Generator/Polyfill/CompilerFeatureRequiredAttribute.cs +++ /dev/null @@ -1,56 +0,0 @@ -// <auto-generated /> -#pragma warning disable - -#if !NET7_0_OR_GREATER - -namespace System.Runtime.CompilerServices; - -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; -using Link = System.ComponentModel.DescriptionAttribute; - -/// <summary> -/// Indicates that compiler support for a particular feature is required for the location where this attribute is applied. -/// </summary> -[ExcludeFromCodeCoverage] -[DebuggerNonUserCode] -[AttributeUsage( - validOn: AttributeTargets.All, - AllowMultiple = true, - Inherited = false)] -[Link("https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.compilerfeaturerequiredattribute")] -#if PolyPublic -public -#endif -sealed class CompilerFeatureRequiredAttribute : - Attribute -{ - /// <summary> - /// Initialize a new instance of <see cref="CompilerFeatureRequiredAttribute"/> - /// </summary> - /// <param name="featureName">The name of the required compiler feature.</param> - public CompilerFeatureRequiredAttribute(string featureName) => - FeatureName = featureName; - - /// <summary> - /// The name of the compiler feature. - /// </summary> - public string FeatureName { get; } - - /// <summary> - /// If true, the compiler can choose to allow access to the location where this attribute is applied if it does not understand <see cref="FeatureName"/>. - /// </summary> - public bool IsOptional { get; init; } - - /// <summary> - /// The <see cref="FeatureName"/> used for the ref structs C# feature. - /// </summary> - public const string RefStructs = nameof(RefStructs); - - /// <summary> - /// The <see cref="FeatureName"/> used for the required members C# feature. - /// </summary> - public const string RequiredMembers = nameof(RequiredMembers); -} - -#endif diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/IsExternalInit.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/IsExternalInit.cs deleted file mode 100644 index f7221c6dda..0000000000 --- a/new-cli/GitVersion.Cli.Generator/Polyfill/IsExternalInit.cs +++ /dev/null @@ -1,21 +0,0 @@ -// <auto-generated /> -#pragma warning disable - -#if !NET5_0_OR_GREATER - -namespace System.Runtime.CompilerServices; - -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; - -/// <summary> -/// Reserved to be used by the compiler for tracking metadata. This class should not be used by developers in source code. -/// </summary> -[ExcludeFromCodeCoverage] -[DebuggerNonUserCode] -#if PolyPublic -public -#endif -static class IsExternalInit; - -#endif diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/NotNullAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/NotNullAttribute.cs deleted file mode 100644 index 827063a13d..0000000000 --- a/new-cli/GitVersion.Cli.Generator/Polyfill/NotNullAttribute.cs +++ /dev/null @@ -1,26 +0,0 @@ -// <auto-generated /> -#pragma warning disable - -#if NETSTANDARD2_0 || NETFRAMEWORK || NETCOREAPP2X - -namespace System.Diagnostics.CodeAnalysis; - -using Targets = AttributeTargets; - -/// <summary> -/// Specifies that an output is not <see langword="null"/> even if the -/// corresponding type allows it. -/// </summary> -[ExcludeFromCodeCoverage] -[DebuggerNonUserCode] -[AttributeUsage( - validOn: Targets.Field | - Targets.Parameter | - Targets.Property | - Targets.ReturnValue)] -#if PolyPublic -public -#endif -sealed class NotNullAttribute : - Attribute; -#endif diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/RequiredMemberAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/RequiredMemberAttribute.cs deleted file mode 100644 index a38ca389fd..0000000000 --- a/new-cli/GitVersion.Cli.Generator/Polyfill/RequiredMemberAttribute.cs +++ /dev/null @@ -1,29 +0,0 @@ -// <auto-generated /> -#pragma warning disable - -#if !NET7_0_OR_GREATER - -namespace System.Runtime.CompilerServices; - -using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; - -using Targets = AttributeTargets; - -/// <summary> -/// Specifies that a type has required members or that a member is required. -/// </summary> -[ExcludeFromCodeCoverage] -[DebuggerNonUserCode] -[AttributeUsage( - validOn: Targets.Class | - Targets.Struct | - Targets.Field | - Targets.Property, - Inherited = false)] -#if PolyPublic -public -#endif -sealed class RequiredMemberAttribute : - Attribute; -#endif diff --git a/new-cli/GitVersion.Cli.Generator/Polyfill/SetsRequiredMembersAttribute.cs b/new-cli/GitVersion.Cli.Generator/Polyfill/SetsRequiredMembersAttribute.cs deleted file mode 100644 index a3cdfc8608..0000000000 --- a/new-cli/GitVersion.Cli.Generator/Polyfill/SetsRequiredMembersAttribute.cs +++ /dev/null @@ -1,20 +0,0 @@ -// <auto-generated /> -#pragma warning disable - -#if !NET7_0_OR_GREATER - -namespace System.Diagnostics.CodeAnalysis; - -/// <summary> -/// Specifies that this constructor sets all required members for the current type, and callers -/// do not need to set any required members themselves. -/// </summary> -[ExcludeFromCodeCoverage] -[DebuggerNonUserCode] -[AttributeUsage(AttributeTargets.Constructor)] -#if PolyPublic -public -#endif -sealed class SetsRequiredMembersAttribute : - Attribute; -#endif From b32937912dd8d015f39d0772ebe6c746e23a1cd5 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Sun, 22 Mar 2026 22:12:19 +0100 Subject: [PATCH 256/358] chore(solution): Remove Qodana configuration file reference --- src/GitVersion.slnx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/GitVersion.slnx b/src/GitVersion.slnx index 11c8908bea..c763590e6b 100644 --- a/src/GitVersion.slnx +++ b/src/GitVersion.slnx @@ -19,7 +19,6 @@ <File Path="../.gitversion.yml" /> <File Path="../GitReleaseManager.yml" /> <File Path="../global.json" /> - <File Path="../qodana.yaml" /> </Folder> <Folder Name="/root/readme/"> <File Path="../BREAKING_CHANGES.md" /> @@ -38,4 +37,4 @@ <Project Path="GitVersion.Core/GitVersion.Core.csproj" /> <Project Path="GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj" /> <Project Path="GitVersion.MsBuild/GitVersion.MsBuild.csproj" /> -</Solution> \ No newline at end of file +</Solution> From 00e59b5f45fe97e2e610a480a860b3a009db9602 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Mon, 23 Mar 2026 08:08:12 +0100 Subject: [PATCH 257/358] ci(release): Add GitHub prompt for preparing release milestones Extend .editorconfig indentation settings to XML files for consistent formatting. --- .editorconfig | 2 +- .../prepare-release-milestone.prompt.md | 96 +++++++++++++++++++ src/Directory.Build.props | 1 - 3 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 .github/prompts/prepare-release-milestone.prompt.md diff --git a/.editorconfig b/.editorconfig index 709cd532da..7280cb9f65 100644 --- a/.editorconfig +++ b/.editorconfig @@ -16,7 +16,7 @@ dotnet_style_qualification_for_field = false:none dotnet_style_qualification_for_method = false:none dotnet_style_qualification_for_property = false:none -[*.yml] +[{*.yml,*.xml}] indent_size = 2 ### CSharp code style settings ### diff --git a/.github/prompts/prepare-release-milestone.prompt.md b/.github/prompts/prepare-release-milestone.prompt.md new file mode 100644 index 0000000000..2f33963880 --- /dev/null +++ b/.github/prompts/prepare-release-milestone.prompt.md @@ -0,0 +1,96 @@ +# Prepare Release Milestone + +Prepare release tracking on GitHub without creating a release. + +## Requirements + +1. Describe the release preparation workflow before taking action: + - Confirm the destination milestone exists or create it. + - Move the closed issues and closed pull requests from the source milestone to the destination milestone. + - Verify that every moved issue and pull request has at least one allowed label. + - Do not create a GitHub release. +2. Ask the user for both: + - Source milestone + - Destination milestone +3. Use only these allowed labels when validating moved items: + - breaking change + - bug + - dependencies + - documentation + - feature + - improvement + - build +4. Treat an item as invalid if: + - It has no labels. + - None of its labels are in the allowed list. +5. Report any invalid items clearly and stop before any release creation step. +6. Keep the response concise and operational. + +## Operational Steps + +1. Ask: + - Source milestone? + - Destination milestone? + +2. Summarize the plan: + - Check whether the destination milestone already exists. + - Create the destination milestone if needed. + - Find closed issues in the source milestone. + - Find closed pull requests in the source milestone. + - Move those closed items to the destination milestone. + - Verify labels on all moved items using the allowed label list. + - Do not create a release. + +3. Resolve milestone state: + +```bash +gh api repos/{owner}/{repo}/milestones --paginate --jq '.[] | [.number,.title,.state] | @tsv' +gh api repos/{owner}/{repo}/milestones -X POST -f title='<DESTINATION_MILESTONE>' +``` + +4. Collect closed items from the source milestone: + +```bash +gh issue list --repo {owner}/{repo} --milestone '<SOURCE_MILESTONE>' --state closed --limit 200 --json number,title,labels +gh pr list --repo {owner}/{repo} --state closed --search 'milestone:"<SOURCE_MILESTONE>"' --limit 200 --json number,title,labels,state +``` + +5. Move closed issues and closed pull requests to the destination milestone: + +```bash +gh issue edit <ISSUE_NUMBER> --repo {owner}/{repo} --milestone '<DESTINATION_MILESTONE>' +gh pr edit <PR_NUMBER> --repo {owner}/{repo} --milestone '<DESTINATION_MILESTONE>' +``` + +6. Verify labels against this allowlist: + +```text +breaking change +bug +dependencies +documentation +feature +improvement +build +``` + +Validation rules: +- Each moved item must have at least one label. +- At least one assigned label must match the allowlist exactly. +- If any moved item fails validation, report the item number, title, and labels. + +7. Verify final milestone state and report: + +```bash +gh issue list --repo {owner}/{repo} --milestone '<DESTINATION_MILESTONE>' --state closed --limit 200 --json number,title,labels +gh pr list --repo {owner}/{repo} --state closed --search 'milestone:"<DESTINATION_MILESTONE>"' --limit 200 --json number,title,labels,state +``` + +Report: +- Source milestone +- Destination milestone +- Whether the destination milestone was created or already existed +- Count of moved closed issues +- Count of moved closed pull requests +- Any moved items missing allowed labels +- Confirmation that no GitHub release was created \ No newline at end of file diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 2a6f60ad7d..38404fb512 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -86,7 +86,6 @@ </PackageReference> <PackageReference Include="NUnit3TestAdapter" /> <PackageReference Include="Shouldly" /> - </ItemGroup> <ItemGroup Condition=" '$(IsUnitTestProject)' == 'true' "> <ProjectReference Include="..\GitVersion.Testing\GitVersion.Testing.csproj" /> From 9bb3367743de5bafd0ccc2a7f0dd0af4c740c87e Mon Sep 17 00:00:00 2001 From: gittools-bot <gittoolsbot@outlook.com> Date: Mon, 23 Mar 2026 09:02:52 +0000 Subject: [PATCH 258/358] include public API changes --- src/GitVersion.Core/PublicAPI.Shipped.txt | 1 + src/GitVersion.Core/PublicAPI.Unshipped.txt | 1 - src/GitVersion.MsBuild/PublicAPI.Shipped.txt | 12 ++++++++++++ src/GitVersion.MsBuild/PublicAPI.Unshipped.txt | 12 ------------ 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index d131fa22b8..fb75cf4a4b 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -144,6 +144,7 @@ GitVersion.Configuration.IGitVersionConfiguration.Workflow.get -> string? GitVersion.Configuration.IIgnoreConfiguration GitVersion.Configuration.IIgnoreConfiguration.Before.get -> System.DateTimeOffset? GitVersion.Configuration.IIgnoreConfiguration.IsEmpty.get -> bool +GitVersion.Configuration.IIgnoreConfiguration.Paths.get -> System.Collections.Generic.IReadOnlySet<string!>! GitVersion.Configuration.IIgnoreConfiguration.Shas.get -> System.Collections.Generic.IReadOnlySet<string!>! GitVersion.Configuration.IPreventIncrementConfiguration GitVersion.Configuration.IPreventIncrementConfiguration.OfMergedBranch.get -> bool? diff --git a/src/GitVersion.Core/PublicAPI.Unshipped.txt b/src/GitVersion.Core/PublicAPI.Unshipped.txt index 0684b2e42f..7dc5c58110 100644 --- a/src/GitVersion.Core/PublicAPI.Unshipped.txt +++ b/src/GitVersion.Core/PublicAPI.Unshipped.txt @@ -1,2 +1 @@ #nullable enable -GitVersion.Configuration.IIgnoreConfiguration.Paths.get -> System.Collections.Generic.IReadOnlySet<string!>! diff --git a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt index 4840de7fde..57d5952758 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt @@ -66,6 +66,18 @@ GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSha.get -> string! GitVersion.MsBuild.Tasks.GetVersion.VersionSourceSha.set -> void GitVersion.MsBuild.Tasks.GetVersion.WeightedPreReleaseNumber.get -> string! GitVersion.MsBuild.Tasks.GetVersion.WeightedPreReleaseNumber.set -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase +GitVersion.MsBuild.Tasks.GitVersionTaskBase.BuildEngine.get -> Microsoft.Build.Framework.IBuildEngine! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.BuildEngine.set -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase.Execute() -> bool +GitVersion.MsBuild.Tasks.GitVersionTaskBase.GitVersionTaskBase() -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase.HostObject.get -> Microsoft.Build.Framework.ITaskHost! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.HostObject.set -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase.Log.get -> Microsoft.Build.Utilities.TaskLoggingHelper! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.SolutionDirectory.get -> string! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.SolutionDirectory.set -> void +GitVersion.MsBuild.Tasks.GitVersionTaskBase.VersionFile.get -> string! +GitVersion.MsBuild.Tasks.GitVersionTaskBase.VersionFile.set -> void GitVersion.MsBuild.Tasks.UpdateAssemblyInfo GitVersion.MsBuild.Tasks.UpdateAssemblyInfo.AssemblyInfoTempFilePath.get -> string! GitVersion.MsBuild.Tasks.UpdateAssemblyInfo.AssemblyInfoTempFilePath.set -> void diff --git a/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt b/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt index 7d3ee50f43..7dc5c58110 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Unshipped.txt @@ -1,13 +1 @@ #nullable enable -GitVersion.MsBuild.Tasks.GitVersionTaskBase -GitVersion.MsBuild.Tasks.GitVersionTaskBase.BuildEngine.get -> Microsoft.Build.Framework.IBuildEngine! -GitVersion.MsBuild.Tasks.GitVersionTaskBase.BuildEngine.set -> void -GitVersion.MsBuild.Tasks.GitVersionTaskBase.Execute() -> bool -GitVersion.MsBuild.Tasks.GitVersionTaskBase.GitVersionTaskBase() -> void -GitVersion.MsBuild.Tasks.GitVersionTaskBase.HostObject.get -> Microsoft.Build.Framework.ITaskHost! -GitVersion.MsBuild.Tasks.GitVersionTaskBase.HostObject.set -> void -GitVersion.MsBuild.Tasks.GitVersionTaskBase.Log.get -> Microsoft.Build.Utilities.TaskLoggingHelper! -GitVersion.MsBuild.Tasks.GitVersionTaskBase.SolutionDirectory.get -> string! -GitVersion.MsBuild.Tasks.GitVersionTaskBase.SolutionDirectory.set -> void -GitVersion.MsBuild.Tasks.GitVersionTaskBase.VersionFile.get -> string! -GitVersion.MsBuild.Tasks.GitVersionTaskBase.VersionFile.set -> void From 44d62519eead504653390b0f114421dbdbb298f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 12:07:44 +0000 Subject: [PATCH 259/358] (build deps): Bump mislav/bump-homebrew-formula-action Bumps [mislav/bump-homebrew-formula-action](https://github.com/mislav/bump-homebrew-formula-action) from 3 to 4. - [Release notes](https://github.com/mislav/bump-homebrew-formula-action/releases) - [Commits](https://github.com/mislav/bump-homebrew-formula-action/compare/v3...v4) --- updated-dependencies: - dependency-name: mislav/bump-homebrew-formula-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> --- .github/workflows/homebrew.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/homebrew.yml b/.github/workflows/homebrew.yml index 9d8137baf0..3b1ba7ca0d 100644 --- a/.github/workflows/homebrew.yml +++ b/.github/workflows/homebrew.yml @@ -35,7 +35,7 @@ jobs: with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - - uses: mislav/bump-homebrew-formula-action@v3 + - uses: mislav/bump-homebrew-formula-action@v4 name: Bump Homebrew formula with: formula-name: gitversion From 08632808dec555c5da5bb019154e51f339015fe7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 13:00:36 +0000 Subject: [PATCH 260/358] (deps): Bump coverlet.MTP from 8.0.0 to 8.0.1 --- updated-dependencies: - dependency-name: coverlet.MTP dependency-version: 8.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 2abada83a1..e8978fce3d 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -9,7 +9,7 @@ </PropertyGroup> <ItemGroup> <!-- common packages --> - <PackageVersion Include="coverlet.MTP" Version="8.0.0" /> + <PackageVersion Include="coverlet.MTP" Version="8.0.1" /> <PackageVersion Include="JsonSchema.Net" Version="7.3.4" /> <PackageVersion Include="LibGit2Sharp" Version="0.31.0" /> <PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0" /> From 24efe0f8f794eb371c34890a7cce3e0bd32fd56e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 12:51:17 +0000 Subject: [PATCH 261/358] (deps): Bump Scriban from 7.0.0 to 7.0.3 --- updated-dependencies: - dependency-name: Scriban dependency-version: 7.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- .../GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 5713f5be3d..5d14169fa7 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Scriban" Version="7.0.0" /> + <PackageVersion Include="Scriban" Version="7.0.3" /> <PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> diff --git a/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj b/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj index f54b1f214b..2a19a924ae 100644 --- a/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj +++ b/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj @@ -6,7 +6,6 @@ <PackageScribanIncludeSource>true</PackageScribanIncludeSource> <SatelliteResourceLanguages>en</SatelliteResourceLanguages> <EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules> - <NoWarn>$(NoWarn);CS8669</NoWarn> </PropertyGroup> <ItemGroup> From 3bfb11d919a3af3afae14a1daf36de56493c034c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 22:06:45 +0000 Subject: [PATCH 262/358] (docs deps): Bump picomatch from 2.3.1 to 2.3.2 Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2. - [Release notes](https://github.com/micromatch/picomatch/releases) - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2) --- updated-dependencies: - dependency-name: picomatch dependency-version: 2.3.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index afa7ea8fe1..cd984618f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4970,9 +4970,9 @@ } }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "engines": { "node": ">=8.6" @@ -15479,9 +15479,9 @@ } }, "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true }, "pluralize": { From 75db67357f38281c6694b8be8e53bb38defdd3be Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Thu, 26 Mar 2026 12:54:53 +0100 Subject: [PATCH 263/358] docs: add AGENTS.md for AI coding agent guidance Provide architectural overview, developer commands, and testing patterns to assist AI tools in navigating the repository. --- AGENTS.md | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000000..fca8150a3b --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,122 @@ +# GitVersion — AI Agent Instructions + +This file provides repo-specific guidance for AI coding agents (e.g. Claude Code, Codex, Copilot Workspace). + +## Project overview + +GitVersion is a multi-project .NET repository that calculates semantic versions from Git history. +Primary source code lives under `src/`. CLI examples and documentation live under `docs/`. + +## Key files + +- `README.md` — project overview and links to documentation +- `global.json` — SDK version pin (.NET 10) and solution roots (`build`, `new-cli`, `src`) +- `build.ps1` — primary build entry point (Cake-based); day-to-day work uses `dotnet` CLI directly +- `src/Directory.Packages.props` — central NuGet package versioning (edit here, not in individual csproj files) +- `src/GitVersion.slnx` — main solution file +- `docs/` — CLI usage examples and I/O patterns (JSON stdout, environment outputs) +- `src/GitVersion.Configuration/ConfigurationFileLocator.cs` — config file lookup logic + +## Architecture + +The repo has two parallel solution trees: + +### `src/` — legacy/stable CLI + +| Project | Role | +| -------------------------- | -------------------------------------- | +| `GitVersion.Core` | Core version calculation logic | +| `GitVersion.Configuration` | Configuration loading and validation | +| `GitVersion.App` | CLI entry point | +| `GitVersion.BuildAgents` | Platform-specific build agent adapters | +| `GitVersion.LibGit2Sharp` | Git repository access | +| `*Tests` projects | Unit and integration tests | + +Build-agent adapters live in `src/GitVersion.BuildAgents/Agents/`. They write `GitVersion_`-prefixed environment variables — preserve that prefix when reading or writing outputs. + +### `new-cli/` — new CLI (actively developed, `new-cli/GitVersion.slnx`) + +| Project | Role | +| -------------------------------- | ------------------------------------------ | +| `GitVersion.Cli` | New CLI entry point | +| `GitVersion.Core` | Core version calculation (new-cli variant) | +| `GitVersion.Calculation` | Version calculation plugin | +| `GitVersion.Configuration` | Configuration plugin | +| `GitVersion.Normalization` | Normalization plugin | +| `GitVersion.Output` | Output plugin | +| `GitVersion.Common` | Shared utilities | +| `GitVersion.Core.Libgit2Sharp` | Git repository access | +| `GitVersion.Cli.Generator` | Source generator for CLI commands | +| `GitVersion.Cli.Generator.Tests` | Generator tests | + +The `new-cli/` tree has its own `Directory.Packages.props` for centralized package versions. + +## Developer commands + +```bash +# --- src/ (legacy CLI) --- + +# Build the solution +dotnet build ./src/GitVersion.slnx + +# Run all tests +dotnet test ./src/GitVersion.slnx + +# Run tests for a single project +dotnet test --project ./src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj + +# Run the legacy CLI locally +dotnet run --project src/GitVersion.App + +# Format code +dotnet format ./src/GitVersion.slnx + +# Verify formatting (CI-friendly, non-zero exit if changes needed) +dotnet format --verify-no-changes ./src/GitVersion.slnx + +# --- new-cli/ (new CLI) --- + +# Build the new CLI solution +dotnet build ./new-cli/GitVersion.slnx + +# Run tests for the new CLI +dotnet test ./new-cli/GitVersion.slnx + +# Run the new CLI locally +dotnet run --project new-cli/GitVersion.Cli +``` + +## Conventions + +- **SDK / TFM**: .NET 10 (`global.json`); most projects target `net10.0`. +- **Package versions**: update `src/Directory.Packages.props`, not individual csproj files. Add packages via `dotnet add package <Package> --version <Version>`. +- **Config file names**: `GitVersion.yml`, `GitVersion.yaml`, `.GitVersion.yml`, `.GitVersion.yaml` — use these names or pass `--configfile`. +- **Code style**: `.editorconfig` defines style; run `dotnet format` to apply. +- **Commit style**: prefer atomic commits; rebase onto `main` rather than merging. +- **Tests**: integration tests live in `src/GitVersion.Core.Tests/IntegrationTests/`. Use `EmptyRepositoryFixture` / `BaseGitFlowRepositoryFixture` and builder patterns (`GitFlowConfigurationBuilder`, `GitHubFlowConfigurationBuilder`). + +## What to check when changing behavior + +- CLI output shape changed → update `docs/` examples and build-agent adapters that parse JSON or env vars. +- New dependency added → update `src/Directory.Packages.props` and verify with `dotnet build`. +- Configuration schema changed → regenerate schemas: + + ```bash + ./build.ps1 -Stage build -Target BuildPrepare + ./build.ps1 -Stage docs -Target GenerateSchemas + ``` + +## Testing guidance + +Most relevant tests are in `src/GitVersion.Core.Tests/IntegrationTests/`. There is a scenario class per branch type (e.g. `MainScenarios`, `FeatureBranchScenarios`). Use `fixture.AssertFullSemver("x.y.z-label.n", configuration)` to assert calculated versions. + +```csharp +using var fixture = new EmptyRepositoryFixture(); +fixture.Repository.MakeATaggedCommit("1.0.0"); +fixture.Repository.CreateBranch("feature/my-feature"); +fixture.Checkout("feature/my-feature"); // use fixture.Checkout(), not fixture.Repository.Checkout() +fixture.Repository.MakeACommit(); + +var configuration = GitFlowConfigurationBuilder.New.Build(); +fixture.AssertFullSemver("1.0.1-my-feature.1", configuration); +``` From c5d19debafc547be3c1713308d6c3bb90429fd33 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 12:49:10 +0000 Subject: [PATCH 264/358] (deps): Bump Scriban from 7.0.3 to 7.0.5 --- updated-dependencies: - dependency-name: Scriban dependency-version: 7.0.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 5d14169fa7..fac8a2dcb2 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Scriban" Version="7.0.3" /> + <PackageVersion Include="Scriban" Version="7.0.5" /> <PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> From 43d576ba3f3077df501db9a5cf2fe4720040eada Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2026 12:16:25 +0000 Subject: [PATCH 265/358] ci(mergify): upgrade configuration to current format --- .github/mergify.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/mergify.yml b/.github/mergify.yml index 7acff9a92e..ec9e3fd82c 100644 --- a/.github/mergify.yml +++ b/.github/mergify.yml @@ -33,3 +33,5 @@ queue_rules: - check-success=DotNet Format - check-success=Release - check-success=Build & Test (new-cli) +merge_protections_settings: + reporting_method: check-runs From a07f42739e478637975dd5118d1579b2fc01f68f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Mar 2026 12:05:57 +0000 Subject: [PATCH 266/358] (build deps): Bump codecov/codecov-action in /.github/workflows Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5 to 6. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v5...v6) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> --- .github/workflows/_unit_tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index 5a23758ffa..79aefcab38 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -47,7 +47,7 @@ jobs: paths: artifacts/test-results/**/results.xml - name: Upload Coverage - uses: codecov/codecov-action@v5 + uses: codecov/codecov-action@v6 if: success() && inputs.publish_coverage && matrix.dotnet_version == '10.0' with: files: artifacts/test-results/**/results.xml @@ -55,7 +55,7 @@ jobs: use_oidc: true - name: Upload Coverage - uses: codecov/codecov-action@v5 + uses: codecov/codecov-action@v6 if: success() && inputs.publish_coverage && matrix.dotnet_version == '10.0' with: directory: artifacts/test-results From 6263c412ba151a2c69fd9755a982b5614fd0fe5e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 12:23:12 +0000 Subject: [PATCH 267/358] (deps): Bump the microsoft group with 1 update Bumps Microsoft.NET.Test.Sdk from 18.3.0 to 18.4.0 --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- src/Directory.Packages.props | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index fac8a2dcb2..11b4b6513d 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -14,7 +14,7 @@ <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.5" /> <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.5" /> - <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.3.0" /> + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.4.0" /> <PackageVersion Include="NUnit" Version="4.5.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.12.0"> <PrivateAssets>all</PrivateAssets> diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index e8978fce3d..e968026ef7 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -34,7 +34,7 @@ <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.5" /> <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.5" /> <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.5" /> - <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.3.0" /> + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.4.0" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> <PackageVersion Include="NUnit" Version="4.5.1" /> From 4b7b6a9621f661ad5b6b266470c31a72e4b6cf18 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 12:49:36 +0000 Subject: [PATCH 268/358] (deps): Bump Scriban from 7.0.5 to 7.0.6 --- updated-dependencies: - dependency-name: Scriban dependency-version: 7.0.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- .../GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 11b4b6513d..5b057aa439 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Scriban" Version="7.0.5" /> + <PackageVersion Include="Scriban" Version="7.0.6" /> <PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> diff --git a/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj b/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj index 2a19a924ae..25aa525fef 100644 --- a/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj +++ b/new-cli/GitVersion.Cli.Generator/GitVersion.Cli.Generator.csproj @@ -6,6 +6,7 @@ <PackageScribanIncludeSource>true</PackageScribanIncludeSource> <SatelliteResourceLanguages>en</SatelliteResourceLanguages> <EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules> + <PolySharpIncludeRuntimeSupportedAttributes>true</PolySharpIncludeRuntimeSupportedAttributes> </PropertyGroup> <ItemGroup> From 2d2c68e40770280ead6b18cea5566bcc21d21c87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 12:56:29 +0000 Subject: [PATCH 269/358] (deps): Bump JsonSchema.Net.Generation from 7.1.3 to 7.2.0 --- updated-dependencies: - dependency-name: JsonSchema.Net.Generation dependency-version: 7.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index e968026ef7..fd73eca593 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> <PackageVersion Include="Buildalyzer" Version="8.0.0" /> - <PackageVersion Include="JsonSchema.Net.Generation" Version="7.1.3" /> + <PackageVersion Include="JsonSchema.Net.Generation" Version="7.2.0" /> <PackageVersion Include="JunitXml.TestLogger" Version="8.0.0" /> <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.5" /> From 3c726d2396fab1960bbd5fe2a82103abfc780f10 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:08:46 +0000 Subject: [PATCH 270/358] (build deps): Bump gittools/cicd from 1 to 2 in /.github/workflows Bumps [gittools/cicd](https://github.com/gittools/cicd) from 1 to 2. - [Commits](https://github.com/gittools/cicd/compare/v1...v2) --- updated-dependencies: - dependency-name: gittools/cicd dependency-version: '2' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> --- .github/workflows/_docker.yml | 2 +- .github/workflows/_docker_manifests.yml | 2 +- .github/workflows/_publish.yml | 4 ++-- .github/workflows/ci.yml | 2 +- .github/workflows/gittools-actions.yml | 2 +- .github/workflows/homebrew.yml | 2 +- .github/workflows/mkdocs.yml | 4 ++-- .github/workflows/public-api.yml | 4 ++-- .github/workflows/winget.yml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/_docker.yml b/.github/workflows/_docker.yml index d34bc7949a..46a7436f0d 100644 --- a/.github/workflows/_docker.yml +++ b/.github/workflows/_docker.yml @@ -62,7 +62,7 @@ jobs: - name: Load DockerHub credentials id: dockerhub-creds if: success() && inputs.publish_images - uses: gittools/cicd/dockerhub-creds@v1 + uses: gittools/cicd/dockerhub-creds@v2 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/_docker_manifests.yml b/.github/workflows/_docker_manifests.yml index b92af58dad..817f110a1b 100644 --- a/.github/workflows/_docker_manifests.yml +++ b/.github/workflows/_docker_manifests.yml @@ -42,7 +42,7 @@ jobs: - name: Load DockerHub credentials if: inputs.publish_manifests id: dockerhub-creds - uses: gittools/cicd/dockerhub-creds@v1 + uses: gittools/cicd/dockerhub-creds@v2 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index b94e46b468..9b9a746982 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -40,14 +40,14 @@ jobs: - name: Load NuGet credentials id: nuget-creds if: inputs.publish_packages - uses: gittools/cicd/nuget-creds@v1 + uses: gittools/cicd/nuget-creds@v2 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Load Chocolatey credentials id: choco-creds if: inputs.publish_packages - uses: gittools/cicd/choco-creds@v1 + uses: gittools/cicd/choco-creds@v2 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a0f42d3a6..6cb1e3e255 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -166,7 +166,7 @@ jobs: - name: Load DockerHub credentials id: dockerhub-creds if: env.CAN_PUBLISH == 'true' - uses: gittools/cicd/dockerhub-creds@v1 + uses: gittools/cicd/dockerhub-creds@v2 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/gittools-actions.yml b/.github/workflows/gittools-actions.yml index 32e9a9bca8..cfd23cf57d 100644 --- a/.github/workflows/gittools-actions.yml +++ b/.github/workflows/gittools-actions.yml @@ -35,7 +35,7 @@ jobs: - name: Load GitHub App credentials id: github-app-creds - uses: gittools/cicd/github-app-creds@v1 + uses: gittools/cicd/github-app-creds@v2 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/homebrew.yml b/.github/workflows/homebrew.yml index 3b1ba7ca0d..780b11152e 100644 --- a/.github/workflows/homebrew.yml +++ b/.github/workflows/homebrew.yml @@ -31,7 +31,7 @@ jobs: - name: Load GitHub release token id: github-creds - uses: gittools/cicd/github-creds@v1 + uses: gittools/cicd/github-creds@v2 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 9193a80d08..337b9ef8a3 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -29,7 +29,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: gittools/cicd/checkout@v1 + uses: gittools/cicd/checkout@v2 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} fetch-depth: 1 @@ -46,6 +46,6 @@ jobs: working-directory: ${{ github.workspace }}/docs/input - name: Commit and push markdown docs changes - uses: gittools/cicd/git-commit-push@v1 + uses: gittools/cicd/git-commit-push@v2 with: message: "include markdown docs changes" diff --git a/.github/workflows/public-api.yml b/.github/workflows/public-api.yml index 4d8fdf640f..f88e8ac8c1 100644 --- a/.github/workflows/public-api.yml +++ b/.github/workflows/public-api.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: gittools/cicd/checkout@v1 + uses: gittools/cicd/checkout@v2 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} fetch-depth: 0 @@ -24,6 +24,6 @@ jobs: run: ./src/mark-shipped.ps1 - name: Commit and push changes - uses: gittools/cicd/git-commit-push@v1 + uses: gittools/cicd/git-commit-push@v2 with: message: "include public API changes" diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index e6bea27abc..49e37b915c 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -35,7 +35,7 @@ jobs: - name: Load GitHub release token id: github-creds - uses: gittools/cicd/github-creds@v1 + uses: gittools/cicd/github-creds@v2 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} From 6ba720d7a6e41f108eeba49283985a585a847c49 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Tue, 7 Apr 2026 23:46:31 +0200 Subject: [PATCH 271/358] feat(prompts): add release preparation prompt and refine gh command patterns Introduce a new prompt for managing GitHub releases and update existing automation templates to prioritize non-interactive CLI usage without pagers. --- .../create-issue-from-branch.prompt.md | 25 ++- .../prompts/create-pr-from-branch.prompt.md | 32 ++-- .../prepare-release-milestone.prompt.md | 18 ++- .github/prompts/prepare-release.prompt.md | 142 ++++++++++++++++++ .github/skills/git-commit/SKILL.md | 4 +- 5 files changed, 197 insertions(+), 24 deletions(-) create mode 100644 .github/prompts/prepare-release.prompt.md diff --git a/.github/prompts/create-issue-from-branch.prompt.md b/.github/prompts/create-issue-from-branch.prompt.md index d89dc5d063..c26eab6748 100644 --- a/.github/prompts/create-issue-from-branch.prompt.md +++ b/.github/prompts/create-issue-from-branch.prompt.md @@ -14,14 +14,25 @@ Create or update a GitHub issue from the changes in the current branch compared - If milestone is not provided, use the latest open milestone. 5. The issue description must be well-formatted Markdown. 6. Use this Markdown structure exactly (omit empty sections): + - ## Summary + - ## Goal + - ## Success Criteria + - ## References + 7. Keep language concise, goal-oriented, and user-facing. +8. Prefer plain non-interactive `gh` commands. + - Do not prefix commands with `GH_PAGER=cat` by default. + - Only disable the pager when command output would otherwise not be captured reliably. ## Operational Steps +Use standard `gh` commands by default. +Only disable the pager when needed to make command output reliably readable in the execution environment. + 1. Ensure branch comparison is up to date: ```bash @@ -30,11 +41,11 @@ git log --oneline --no-merges origin/main..HEAD git diff --name-status origin/main..HEAD ``` -2. Ask: +1. Ask: - Label? (default: improvement) - Milestone? (default: latest open milestone) -3. Resolve defaults: +2. Resolve defaults: ```bash LABEL="${LABEL:-improvement}" @@ -44,7 +55,7 @@ if [ -z "$MILESTONE" ]; then fi ``` -4. Build a well-formatted Markdown body in a temp file: +1. Build a well-formatted Markdown body in a temp file: ```bash cat > /tmp/issue-body.md <<'EOF' @@ -63,11 +74,10 @@ cat > /tmp/issue-body.md <<'EOF' EOF ``` -5. Suggest a title in this style: - - [IMPROVEMENT]: <goal-focused title> +1. Suggest a title in this style: - Adapt prefix to selected label where appropriate (for example: [FEATURE]: ...). -6. Create or update issue: +2. Create or update issue: Create: @@ -89,13 +99,14 @@ gh issue edit <ISSUE_NUMBER> \ --body-file /tmp/issue-body.md ``` -7. Verify and report final state: +1. Verify and report final state: ```bash gh issue view <ISSUE_NUMBER> --json number,title,url,labels,milestone,body ``` Report: + - Issue number and URL - Final title - Final label(s) diff --git a/.github/prompts/create-pr-from-branch.prompt.md b/.github/prompts/create-pr-from-branch.prompt.md index 1c2248896d..4ce8cb1b9e 100644 --- a/.github/prompts/create-pr-from-branch.prompt.md +++ b/.github/prompts/create-pr-from-branch.prompt.md @@ -12,13 +12,21 @@ Create or update a GitHub pull request from the current branch into the fork's m 6. Keep language concise, outcome-focused, and reviewer-friendly. 7. Do not include irrelevant implementation noise; summarize what matters for review. 8. Whenever new commits are pushed that change scope, update the PR description so it stays in sync with current branch changes. +9. Prefer plain non-interactive `gh` commands. + +- Do not prefix commands with `GH_PAGER=cat` by default. +- Only disable the pager when command output would otherwise not be captured reliably. ## PR Markdown Template Use this structure (omit empty sections): + - ## Summary + - ## Why + - ## Validation + - ## Issue Example: @@ -41,6 +49,9 @@ Resolves #<issue-number> ## Operational Steps +Use standard `gh` commands by default. +Only disable the pager when needed to make command output reliably readable in the execution environment. + 1. Ensure branch comparison is current: ```bash @@ -49,18 +60,19 @@ git log --oneline --no-merges origin/main..HEAD git diff --name-status origin/main..HEAD ``` -2. Determine branch and existing PR state: +1. Determine branch and existing PR state: ```bash BRANCH="$(git rev-parse --abbrev-ref HEAD)" -GH_PAGER=cat GH_FORCE_TTY=0 gh pr list --head "$BRANCH" --json number,title,url,state +GH_FORCE_TTY=0 gh pr list --head "$BRANCH" --json number,title,url,state ``` -3. Ask for required metadata if missing: +1. Ask for required metadata if missing: + - Target issue number to resolve - PR title override (optional) -4. Build or refresh PR body in a temp file: +1. Build or refresh PR body in a temp file: ```bash cat > /tmp/pr-body.md <<'EOF' @@ -80,28 +92,28 @@ Resolves #<issue-number> EOF ``` -5. Create PR if none exists: +1. Create PR if none exists: ```bash -GH_PAGER=cat GH_FORCE_TTY=0 gh pr create \ +GH_FORCE_TTY=0 gh pr create \ --base main \ --head "$BRANCH" \ --title "<PR title>" \ --body-file /tmp/pr-body.md ``` -6. Update PR if one already exists, or after new commits change scope: +1. Update PR if one already exists, or after new commits change scope: ```bash -GH_PAGER=cat GH_FORCE_TTY=0 gh pr edit <PR_NUMBER> \ +GH_FORCE_TTY=0 gh pr edit <PR_NUMBER> \ --title "<PR title>" \ --body-file /tmp/pr-body.md ``` -7. Verify final PR state: +1. Verify final PR state: ```bash -GH_PAGER=cat GH_FORCE_TTY=0 gh pr view <PR_NUMBER> --json number,title,url,body +GH_FORCE_TTY=0 gh pr view <PR_NUMBER> --json number,title,url,body ``` ## Completion Checklist diff --git a/.github/prompts/prepare-release-milestone.prompt.md b/.github/prompts/prepare-release-milestone.prompt.md index 2f33963880..9c0c4d8a61 100644 --- a/.github/prompts/prepare-release-milestone.prompt.md +++ b/.github/prompts/prepare-release-milestone.prompt.md @@ -25,9 +25,15 @@ Prepare release tracking on GitHub without creating a release. - None of its labels are in the allowed list. 5. Report any invalid items clearly and stop before any release creation step. 6. Keep the response concise and operational. +7. Prefer plain non-interactive `gh` commands. + - Do not prefix commands with `GH_PAGER=cat` by default. + - Only disable the pager when command output would otherwise not be captured reliably. ## Operational Steps +Use standard `gh` commands by default. +Only disable the pager when needed to make command output reliably readable in the execution environment. + 1. Ask: - Source milestone? - Destination milestone? @@ -48,21 +54,21 @@ gh api repos/{owner}/{repo}/milestones --paginate --jq '.[] | [.number,.title,.s gh api repos/{owner}/{repo}/milestones -X POST -f title='<DESTINATION_MILESTONE>' ``` -4. Collect closed items from the source milestone: +1. Collect closed items from the source milestone: ```bash gh issue list --repo {owner}/{repo} --milestone '<SOURCE_MILESTONE>' --state closed --limit 200 --json number,title,labels gh pr list --repo {owner}/{repo} --state closed --search 'milestone:"<SOURCE_MILESTONE>"' --limit 200 --json number,title,labels,state ``` -5. Move closed issues and closed pull requests to the destination milestone: +1. Move closed issues and closed pull requests to the destination milestone: ```bash gh issue edit <ISSUE_NUMBER> --repo {owner}/{repo} --milestone '<DESTINATION_MILESTONE>' gh pr edit <PR_NUMBER> --repo {owner}/{repo} --milestone '<DESTINATION_MILESTONE>' ``` -6. Verify labels against this allowlist: +1. Verify labels against this allowlist: ```text breaking change @@ -75,11 +81,12 @@ build ``` Validation rules: + - Each moved item must have at least one label. - At least one assigned label must match the allowlist exactly. - If any moved item fails validation, report the item number, title, and labels. -7. Verify final milestone state and report: +1. Verify final milestone state and report: ```bash gh issue list --repo {owner}/{repo} --milestone '<DESTINATION_MILESTONE>' --state closed --limit 200 --json number,title,labels @@ -87,10 +94,11 @@ gh pr list --repo {owner}/{repo} --state closed --search 'milestone:"<DESTINATIO ``` Report: + - Source milestone - Destination milestone - Whether the destination milestone was created or already existed - Count of moved closed issues - Count of moved closed pull requests - Any moved items missing allowed labels -- Confirmation that no GitHub release was created \ No newline at end of file +- Confirmation that no GitHub release was created diff --git a/.github/prompts/prepare-release.prompt.md b/.github/prompts/prepare-release.prompt.md new file mode 100644 index 0000000000..092a58d282 --- /dev/null +++ b/.github/prompts/prepare-release.prompt.md @@ -0,0 +1,142 @@ +# Prepare Release + +Prepare a GitHub release after confirming the target version and release type. + +## Requirements + +1. Describe the release workflow before taking action: + - Confirm whether the release should be published as a prerelease or a release. + - After the release type is confirmed, check for an open milestone that is a concrete version and not a spec milestone such as `4.x` or `4.5.x`. + - If a valid open milestone exists, ask the user to confirm that version with a yes/no question. + - If no valid open milestone exists, require the user to provide the release version. + - Verify whether the tag already exists. + - Verify whether a GitHub release already exists for the version. + - Create or update the GitHub release with the title set to the version. +2. Ask the user for both: + - Release type: prerelease or release + - Release version (or milestone confirmation yes/no when a valid milestone exists) +3. Use the release version as both: + - Tag name + - Release title +4. If the user selects prerelease: + - Create the release with the prerelease flag enabled. +5. If the user selects release: + - Create the release without the prerelease flag. + - Ensure the release is linked to the repository announcement discussion for that version. +6. Treat milestone titles such as `v4.x` or `v4.5.x` as spec milestones and do not suggest them as the release version. +7. If a release already exists for the selected tag: + - Do not fail or stop at `gh release create`. + - Inspect the existing release and update it instead. + - If the requested type is release and the existing release is a prerelease, convert it to a full release. + - If the requested type is release and there is no linked discussion, link or create the announcement discussion during the update. +8. Keep the response concise and operational. +9. Prefer plain non-interactive `gh` commands. + - Do not prefix commands with `GH_PAGER=cat` by default. + - Only disable the pager when command output would otherwise not be captured reliably. + +## Operational Steps + +1. Ask: + - Is this a prerelease or a release? + +Ask for the release type first. + +After release type is selected, check open milestones before asking for a version. + +Use standard `gh` commands by default. +Only disable the pager when needed to make command output reliably readable in the execution environment. + +1. Summarize the plan: + - Confirm whether this should be a prerelease or a release. + - Inspect open milestones and find the latest concrete version milestone. + - If found, ask the user to confirm that version with yes/no. + - If not found, ask the user to provide a release version. + - Verify whether the tag already exists. + - Verify whether a GitHub release already exists for that tag. + - Create or update the GitHub release using the version as the tag and title. + - Apply the prerelease flag only when requested. + - When publishing a full release, ensure the `Announcements` discussion is linked. + +2. After the release type is selected, inspect open milestones and find the latest non-spec milestone: + +```bash +gh api repos/{owner}/{repo}/milestones --paginate --jq '.[] | select(.state == "open") | .title' +``` + +Suggestion rules: + +- Exclude milestone titles that match spec patterns such as `v4.x` or `v4.5.x`. +- Prefer the latest milestone that looks like a concrete release version such as `v4.5.0`. +- If a valid milestone exists, ask: `Use <MILESTONE_VERSION> as the release version? (yes/no)`. +- If the answer is yes, use that version. +- If the answer is no, ask the user to provide the release version explicitly. +- If no valid milestone exists, ask the user to provide the release version explicitly. + +1. Confirm release version: + +- Ensure a final release version is confirmed from either: + - Milestone confirmation (yes), or + - User-provided version. + +1. Check whether the tag already exists: + +```bash +gh api repos/{owner}/{repo}/git/ref/tags/<RELEASE_VERSION> +``` + +If the tag already exists, proceed only if that is intentional for the repository workflow. + +1. Check whether a GitHub release already exists for the selected version: + +```bash +gh api repos/{owner}/{repo}/releases/tags/<RELEASE_VERSION> +``` + +Decision rules: + +- If the release does not exist, create it. +- If the release exists, inspect whether it is draft, prerelease, or already a full release. +- If the user selected `prerelease`, update the existing release to keep or set `prerelease=true` as needed. +- If the user selected `release`, update the existing release to set `prerelease=false`. +- Do not attempt `gh release create` again when a release already exists for the tag. + +1. When the user selected `release`, ensure the announcement discussion is linked: + +- Prefer the repository discussion category named `Announcements`. +- If needed, inspect repository discussion categories before updating the release. +- When creating a release, use `discussion_category_name` with `Announcements`. +- When updating an existing release, use the release update API with `discussion_category_name=Announcements`. +- If a discussion is already linked, preserve it. + +1. Create the release: + +Prerelease: + +```bash +gh release create <RELEASE_VERSION> --repo {owner}/{repo} --title '<RELEASE_VERSION>' --prerelease +``` + +Release: + +```bash +gh api repos/{owner}/{repo}/releases -X POST -f tag_name='<RELEASE_VERSION>' -f name='<RELEASE_VERSION>' -F prerelease=false -f discussion_category_name='Announcements' +``` + +Update existing release to full release and link announcement discussion: + +```bash +gh api repos/{owner}/{repo}/releases/<RELEASE_ID> -X PATCH -F prerelease=false -F make_latest=true -f discussion_category_name='Announcements' +``` + +1. Report: + +- Release version +- Release type +- Whether a valid milestone version was found +- Whether the milestone version was confirmed (yes/no) +- Whether the version was milestone-confirmed or user-provided +- Whether the tag already existed +- Whether a GitHub release already existed for the version +- Whether the GitHub release was created or updated successfully +- Whether the release ended as prerelease or full release +- Whether the announcement discussion was linked diff --git a/.github/skills/git-commit/SKILL.md b/.github/skills/git-commit/SKILL.md index a02051dc60..90b1f5cb1b 100644 --- a/.github/skills/git-commit/SKILL.md +++ b/.github/skills/git-commit/SKILL.md @@ -14,7 +14,7 @@ determine appropriate type, scope, and message. ## Conventional Commit Format -``` +```bash <type>[optional scope]: <description> [optional body] @@ -40,7 +40,7 @@ determine appropriate type, scope, and message. ## Breaking Changes -``` +```bash # Exclamation mark after type/scope feat!: remove deprecated endpoint From e62a9ddf56b491929ca636c5cd5f6a9eef356771 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 12:49:04 +0000 Subject: [PATCH 272/358] (deps): Bump Scriban from 7.0.6 to 7.1.0 --- updated-dependencies: - dependency-name: Scriban dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 5b057aa439..c102dad1c0 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Scriban" Version="7.0.6" /> + <PackageVersion Include="Scriban" Version="7.1.0" /> <PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> From dbc34f699fb0b5c7d0d37d26798cdd17be88710b Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Fri, 10 Apr 2026 18:35:11 +0200 Subject: [PATCH 273/358] chore(vscode): enable chat features and expand dotnet command auto-approval Enable agent skills and plugins for VS Code chat and add common dotnet CLI commands to the terminal auto-approval list. --- .vscode/settings.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index fd8406f72f..7da94fd386 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,11 @@ { + "chat.useAgentSkills": true, + "chat.plugins.enabled": true, "chat.tools.terminal.autoApprove": { + "dotnet --version": true, + "dotnet --info": true, + "dotnet restore": true, + "dotnet clean": true, "dotnet build": true, "dotnet format": true, "dotnet test": true, From 8f1eb827468b000ea0a927a0bdac9445edbee636 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Mon, 13 Apr 2026 12:17:15 +0200 Subject: [PATCH 274/358] build(docker): update VERSION to 6.7.0 --- build/docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile index aa95e656a6..7ffc2171c2 100644 --- a/build/docker/Dockerfile +++ b/build/docker/Dockerfile @@ -1,9 +1,9 @@ ARG REGISTRY='docker.io' ARG DISTRO='debian.12' ARG DOTNET_VERSION='8.0' -ARG VERSION='6.4.0' +ARG VERSION='6.7.0' -FROM $REGISTRY/gittools/build-images:$DISTRO-sdk-$DOTNET_VERSION as installer +FROM $REGISTRY/gittools/build-images:$DISTRO-sdk-$DOTNET_VERSION AS installer ARG nugetFolder ARG VERSION From cca8be3a8d604ac7d06ea689eb760a96e0b91373 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Mon, 13 Apr 2026 12:17:38 +0200 Subject: [PATCH 275/358] refactor(build): modernize syntax and optimize string processing Apply C# 12 collection expressions and switch expressions, and improve performance in string escaping using SearchValues and Span. --- build/common/Context/DockerBuildContext.cs | 4 +- build/common/Lifetime/DockerBuildLifetime.cs | 30 ++--- build/common/Tasks/Default.cs | 2 +- .../Utilities/DockerContextExtensions.cs | 10 +- build/common/Utilities/Extensions.cs | 105 ++++++++++-------- 5 files changed, 84 insertions(+), 67 deletions(-) diff --git a/build/common/Context/DockerBuildContext.cs b/build/common/Context/DockerBuildContext.cs index d78a57642b..672b901daf 100644 --- a/build/common/Context/DockerBuildContext.cs +++ b/build/common/Context/DockerBuildContext.cs @@ -6,8 +6,8 @@ public class DockerBuildContext(ICakeContext context) : BuildContextBase(context { public bool IsDockerOnLinux { get; set; } - public IEnumerable<DockerImage> Images { get; set; } = new List<DockerImage>(); + public IEnumerable<DockerImage> Images { get; set; } = []; public DockerRegistry DockerRegistry { get; set; } - public ICollection<Architecture> Architectures { get; set; } = new List<Architecture>(); + public ICollection<Architecture> Architectures { get; set; } = []; } diff --git a/build/common/Lifetime/DockerBuildLifetime.cs b/build/common/Lifetime/DockerBuildLifetime.cs index 73e1412518..4c4b3a842e 100644 --- a/build/common/Lifetime/DockerBuildLifetime.cs +++ b/build/common/Lifetime/DockerBuildLifetime.cs @@ -18,19 +18,23 @@ public override void Setup(TContext context, ISetupContext info) var dotnetVersion = context.Argument(Arguments.DotnetVersion, string.Empty).ToLower(); var dockerDistro = context.Argument(Arguments.DockerDistro, string.Empty).ToLower(); - var versions = string.IsNullOrWhiteSpace(dotnetVersion) - ? Constants.DotnetVersions - : string.Equals(dotnetVersion, "lts-latest", StringComparison.OrdinalIgnoreCase) - ? [Constants.DotnetLtsLatest] - : [dotnetVersion]; - - var distros = string.IsNullOrWhiteSpace(dockerDistro) - ? Constants.DockerDistros - : string.Equals(dockerDistro, "distro-latest", StringComparison.OrdinalIgnoreCase) - ? [Constants.AlpineLatest] - : [dockerDistro]; - - var architectures = context.HasArgument(Arguments.Architecture) ? context.Arguments<Architecture>(Arguments.Architecture) : Constants.ArchToBuild; + var versions = dotnetVersion switch + { + _ when dotnetVersion.IsNullOrWhiteSpace() => Constants.DotnetVersions, + _ when dotnetVersion.IsEqualInvariant("lts-latest") => [Constants.DotnetLtsLatest], + _ => [dotnetVersion] + }; + + var distros = dockerDistro switch + { + _ when dockerDistro.IsNullOrWhiteSpace() => Constants.DockerDistros, + _ when dockerDistro.IsEqualInvariant("distro-latest") => [Constants.AlpineLatest], + _ => [dockerDistro] + }; + + var architectures = context.HasArgument(Arguments.Architecture) + ? context.Arguments<Architecture>(Arguments.Architecture) + : Constants.ArchToBuild; var platformArch = context.IsRunningOnAmd64() ? Architecture.Amd64 : Architecture.Arm64; var registry = dockerRegistry == DockerRegistry.DockerHub ? Constants.DockerHubRegistry : Constants.GitHubContainerRegistry; diff --git a/build/common/Tasks/Default.cs b/build/common/Tasks/Default.cs index b5f5e777ee..1f8ff5d57e 100644 --- a/build/common/Tasks/Default.cs +++ b/build/common/Tasks/Default.cs @@ -25,7 +25,7 @@ public override void Run(ICakeContext context) context.Information($"# {task.GetTaskDescription()}"); var taskName = task.GetTaskName(); - string target = taskName != nameof(Default) ? $"-Target {taskName}" : string.Empty; + var target = taskName != nameof(Default) ? $"-Target {taskName}" : string.Empty; context.Information($" ./build.ps1 -Stage {entryAssembly?.GetName().Name} {target} {arguments}\n"); } } diff --git a/build/common/Utilities/DockerContextExtensions.cs b/build/common/Utilities/DockerContextExtensions.cs index eb8dd85a9d..e303b231f9 100644 --- a/build/common/Utilities/DockerContextExtensions.cs +++ b/build/common/Utilities/DockerContextExtensions.cs @@ -20,7 +20,7 @@ public static class DockerContextExtensions "org.opencontainers.image.licenses=MIT", "org.opencontainers.image.source=https://github.com/GitTools/GitVersion.git", "org.opencontainers.image.documentation=https://gitversion.net/docs/usage/docker", - $"org.opencontainers.image.created={DateTime.UtcNow:O}", + $"org.opencontainers.image.created={DateTime.UtcNow:O}" ]; extension(BuildContextBase context) @@ -156,14 +156,14 @@ public void DockerTestImage(DockerImage dockerImage) var tags = context.GetDockerTags(dockerImage, dockerImage.Architecture); foreach (var tag in tags) { - context.DockerTestRun(tag, dockerImage.Architecture, "/repo", ["/showvariable", "FullSemver", "/nocache"]); + context.DockerTestRun(tag, dockerImage.Architecture, "/repo", "/showvariable", "FullSemver", "/nocache"); } } public void DockerTestArtifact(DockerImage dockerImage, string cmd) { var tag = $"{dockerImage.DockerImageName()}:{dockerImage.Distro}-sdk-{dockerImage.TargetFramework}"; - context.DockerTestRun(tag, dockerImage.Architecture, "sh", [cmd]); + context.DockerTestRun(tag, dockerImage.Architecture, "sh", cmd); } private void DockerTestRun(string image, Architecture arch, string command, @@ -189,7 +189,7 @@ private IEnumerable<string> GetDockerTags(DockerImage dockerImage, var tags = new List<string> { $"{name}:{context.Version.Version}-{distro}-{targetFramework}", - $"{name}:{context.Version.SemVersion}-{distro}-{targetFramework}", + $"{name}:{context.Version.SemVersion}-{distro}-{targetFramework}" }; if (distro == Constants.DockerDistroLatest && targetFramework == Constants.DotnetLtsLatest) @@ -204,7 +204,7 @@ private IEnumerable<string> GetDockerTags(DockerImage dockerImage, $"{name}:latest", $"{name}:latest-{targetFramework}", $"{name}:latest-{distro}", - $"{name}:latest-{distro}-{targetFramework}", + $"{name}:latest-{distro}-{targetFramework}" ]); } } diff --git a/build/common/Utilities/Extensions.cs b/build/common/Utilities/Extensions.cs index 2832666846..f5166ccfbd 100644 --- a/build/common/Utilities/Extensions.cs +++ b/build/common/Utilities/Extensions.cs @@ -1,10 +1,12 @@ +using System.Buffers; + namespace Common.Utilities; #pragma warning disable S1144 public static class Extensions { - private static readonly char[] CharsThatRequireQuoting = [' ', '"']; - private static readonly char[] CharsThatRequireEscaping = ['\\', '"']; + private static readonly SearchValues<char> CharsRequiringQuoting = SearchValues.Create(' ', '"'); + private static readonly SearchValues<char> CharsRequiringEscaping = SearchValues.Create('\\', '"'); extension(Assembly assembly) { @@ -63,57 +65,68 @@ public static DirectoryPath GetRootDirectory() public string ToSuffix() => arch.ToString().ToLower(); } - extension(string literalValue) + extension(string value) + { + public bool IsNullOrWhiteSpace() => + string.IsNullOrWhiteSpace(value); + + public bool IsEqualInvariant(string other) => + string.Equals(value, other, StringComparison.InvariantCulture); + } + + /// <summary> + /// Escapes arbitrary values so that the process receives the exact string you intend and injection is impossible. + /// Spec: https://msdn.microsoft.com/en-us/library/bb776391.aspx + /// </summary> + public static string EscapeProcessArgument(this string literalValue, bool alwaysQuote = false) { - /// <summary> - /// Escapes arbitrary values so that the process receives the exact string you intend and injection is impossible. - /// Spec: https://msdn.microsoft.com/en-us/library/bb776391.aspx - /// </summary> - public string EscapeProcessArgument(bool alwaysQuote = false) + if (string.IsNullOrEmpty(literalValue)) return "\"\""; + + if (literalValue.AsSpan().IndexOfAny(CharsRequiringQuoting) == -1) // Happy path { - if (string.IsNullOrEmpty(literalValue)) return "\"\""; + if (!alwaysQuote) return literalValue; + if (literalValue[^1] != '\\') return $"\"{literalValue}\""; + } - if (literalValue.IndexOfAny(CharsThatRequireQuoting) == -1) // Happy path - { - if (!alwaysQuote) return literalValue; - if (literalValue[^1] != '\\') return "\"" + literalValue + "\""; - } + return BuildEscapedArgument(literalValue); + } + + private static string BuildEscapedArgument(string s) + { + var sb = new StringBuilder(s.Length + 8).Append('"'); + var nextPosition = 0; - var sb = new StringBuilder(literalValue.Length + 8).Append('"'); + while (true) + { + var relativeIndex = s.AsSpan(nextPosition).IndexOfAny(CharsRequiringEscaping); + if (relativeIndex == -1) break; - var nextPosition = 0; - while (true) - { - var nextEscapeChar = literalValue.IndexOfAny(CharsThatRequireEscaping, nextPosition); - if (nextEscapeChar == -1) break; - - sb.Append(literalValue, nextPosition, nextEscapeChar - nextPosition); - nextPosition = nextEscapeChar + 1; - - switch (literalValue[nextEscapeChar]) - { - case '"': - sb.Append("\\\""); - break; - case '\\': - var numBackslashes = 1; - while (nextPosition < literalValue.Length && literalValue[nextPosition] == '\\') - { - numBackslashes++; - nextPosition++; - } - if (nextPosition == literalValue.Length || literalValue[nextPosition] == '"') - numBackslashes <<= 1; - - for (; numBackslashes != 0; numBackslashes--) - sb.Append('\\'); - break; - } - } + var nextEscapeChar = nextPosition + relativeIndex; + sb.Append(s, nextPosition, relativeIndex); + nextPosition = nextEscapeChar + 1; - sb.Append(literalValue, nextPosition, literalValue.Length - nextPosition).Append('"'); - return sb.ToString(); + if (s[nextEscapeChar] == '"') + sb.Append("\\\""); + else + nextPosition = AppendEscapedBackslashes(sb, s, nextPosition); } + + return sb.Append(s, nextPosition, s.Length - nextPosition).Append('"').ToString(); + } + + private static int AppendEscapedBackslashes(StringBuilder sb, string s, int nextPosition) + { + var numBackslashes = 1; + while (nextPosition < s.Length && s[nextPosition] == '\\') + { + numBackslashes++; + nextPosition++; + } + if (nextPosition == s.Length || s[nextPosition] == '"') + numBackslashes <<= 1; + + sb.Append('\\', numBackslashes); + return nextPosition; } } #pragma warning restore S1144 From dc218a7283283f8787e8b5149240da8124590e5a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 23:19:34 +0000 Subject: [PATCH 276/358] (deps): Bump JsonSchema.Net.Generation from 7.2.0 to 7.3.6 --- updated-dependencies: - dependency-name: JsonSchema.Net.Generation dependency-version: 7.3.6 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index fd73eca593..5237d5c68d 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> <PackageVersion Include="Buildalyzer" Version="8.0.0" /> - <PackageVersion Include="JsonSchema.Net.Generation" Version="7.2.0" /> + <PackageVersion Include="JsonSchema.Net.Generation" Version="7.3.6" /> <PackageVersion Include="JunitXml.TestLogger" Version="8.0.0" /> <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.5" /> From 9908897cc1a253fb8587c804fbb406026e3ef99d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 00:14:47 +0000 Subject: [PATCH 277/358] (deps): Bump the microsoft group with 1 update Bumps System.IO.Abstractions from 22.1.0 to 22.1.1 --- updated-dependencies: - dependency-name: System.IO.Abstractions dependency-version: 22.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.IO.Abstractions dependency-version: 22.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- src/Directory.Packages.props | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index c102dad1c0..f9a5783915 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -32,7 +32,7 @@ <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> <PackageVersion Include="Serilog.Sinks.Map" Version="2.0.0" /> <PackageVersion Include="System.CommandLine" Version="2.0.5" /> - <PackageVersion Include="System.IO.Abstractions" Version="22.1.0" /> + <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> <PackageVersion Include="System.Text.Json" Version="10.0.5" /> </ItemGroup> </Project> \ No newline at end of file diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 5237d5c68d..9434e7562f 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -45,7 +45,7 @@ <PackageVersion Include="System.Collections.Immutable" Version="10.0.5" /> <PackageVersion Include="System.Drawing.Common" Version="10.0.5" /> <PackageVersion Include="System.Formats.Nrbf" Version="10.0.5" /> - <PackageVersion Include="System.IO.Abstractions" Version="22.1.0" /> + <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> <PackageVersion Include="System.Reflection.Metadata" Version="10.0.5" /> <PackageVersion Include="System.Security.Cryptography.Xml" Version="10.0.5" /> <PackageVersion Include="System.Text.Json" Version="10.0.5" /> From adc4f097c32c71643215e5c47ae81676f587c282 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 06:10:02 +0000 Subject: [PATCH 278/358] (sdk): Bump dotnet-sdk from 10.0.201 to 10.0.202 Bumps [dotnet-sdk](https://github.com/dotnet/sdk) from 10.0.201 to 10.0.202. - [Release notes](https://github.com/dotnet/sdk/releases) - [Commits](https://github.com/dotnet/sdk/commits) --- updated-dependencies: - dependency-name: dotnet-sdk dependency-version: 10.0.202 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index c0f5044756..b1c1789ee5 100644 --- a/global.json +++ b/global.json @@ -5,7 +5,7 @@ "src" ], "sdk": { - "version": "10.0.201" + "version": "10.0.202" }, "test": { "runner": "Microsoft.Testing.Platform" From 78d5e4dca188797ee3accca2b6808dee8bcc63fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 07:16:59 +0000 Subject: [PATCH 279/358] (deps): Bump the microsoft group with 11 updates Bumps Microsoft.Extensions.Configuration.CommandLine from 10.0.5 to 10.0.6 Bumps Microsoft.Extensions.DependencyInjection from 10.0.5 to 10.0.6 Bumps Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.5 to 10.0.6 Bumps Microsoft.Extensions.FileSystemGlobbing from 10.0.5 to 10.0.6 Bumps Microsoft.Extensions.Hosting from 10.0.5 to 10.0.6 Bumps Microsoft.Extensions.Logging.Abstractions from 10.0.5 to 10.0.6 Bumps Microsoft.Extensions.Options from 10.0.5 to 10.0.6 Bumps System.Collections.Immutable from 10.0.5 to 10.0.6 Bumps System.CommandLine from 2.0.5 to 2.0.6 Bumps System.Reflection.Metadata from 10.0.5 to 10.0.6 Bumps System.Text.Json from 10.0.5 to 10.0.6 --- updated-dependencies: - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Logging.Abstractions dependency-version: 10.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.CommandLine dependency-version: 2.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Configuration.CommandLine dependency-version: 10.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection dependency-version: 10.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.FileSystemGlobbing dependency-version: 10.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Hosting dependency-version: 10.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Options dependency-version: 10.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Collections.Immutable dependency-version: 10.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Reflection.Metadata dependency-version: 10.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 8 ++++---- src/Directory.Packages.props | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index f9a5783915..957627b418 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -12,8 +12,8 @@ <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0-1.25277.114" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.5" /> - <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.5" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.6" /> + <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.6" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.4.0" /> <PackageVersion Include="NUnit" Version="4.5.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.12.0"> @@ -31,8 +31,8 @@ <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> <PackageVersion Include="Serilog.Sinks.Map" Version="2.0.0" /> - <PackageVersion Include="System.CommandLine" Version="2.0.5" /> + <PackageVersion Include="System.CommandLine" Version="2.0.6" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> - <PackageVersion Include="System.Text.Json" Version="10.0.5" /> + <PackageVersion Include="System.Text.Json" Version="10.0.6" /> </ItemGroup> </Project> \ No newline at end of file diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 9434e7562f..0132afaf47 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -18,8 +18,8 @@ <PackageVersion Include="Microsoft.CodeAnalysis.VisualBasic" Version="5.3.0" /> <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0-1.25277.114" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.5" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.6" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.6" /> <PackageVersion Include="Microsoft.IO.Redist" Version="6.1.3" /> <PackageVersion Include="Polly" Version="8.6.6" /> <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> @@ -30,10 +30,10 @@ <PackageVersion Include="JunitXml.TestLogger" Version="8.0.0" /> <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.5" /> - <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.5" /> - <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.5" /> - <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.5" /> - <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.5" /> + <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.6" /> + <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.6" /> + <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.6" /> + <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.6" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.4.0" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> @@ -42,13 +42,13 @@ <PackageVersion Include="NUnit3TestAdapter" Version="6.1.0" /> <PackageVersion Include="SharpYaml" Version="3.4.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> - <PackageVersion Include="System.Collections.Immutable" Version="10.0.5" /> + <PackageVersion Include="System.Collections.Immutable" Version="10.0.6" /> <PackageVersion Include="System.Drawing.Common" Version="10.0.5" /> <PackageVersion Include="System.Formats.Nrbf" Version="10.0.5" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> - <PackageVersion Include="System.Reflection.Metadata" Version="10.0.5" /> + <PackageVersion Include="System.Reflection.Metadata" Version="10.0.6" /> <PackageVersion Include="System.Security.Cryptography.Xml" Version="10.0.5" /> - <PackageVersion Include="System.Text.Json" Version="10.0.5" /> + <PackageVersion Include="System.Text.Json" Version="10.0.6" /> </ItemGroup> <ItemGroup Condition=" '$(MicrosoftBuildVersion)' != '' "> <PackageVersion Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" /> From 3dc683908ad45a6a1d9cac3e309d9ebd3454bb2d Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 22 Apr 2026 13:18:57 +0200 Subject: [PATCH 280/358] build: allow disabling docker for specific build targets Introduce a UseDocker flag to DockerBuildContext and skip Docker initialization in BuildLifetime when specific test targets are executed. --- build/artifacts/BuildLifetime.cs | 13 +++++++++++++ build/common/Context/DockerBuildContext.cs | 2 ++ build/common/Lifetime/DockerBuildLifetime.cs | 5 +++++ 3 files changed, 20 insertions(+) diff --git a/build/artifacts/BuildLifetime.cs b/build/artifacts/BuildLifetime.cs index 5b74fe09c0..5180ac9eae 100644 --- a/build/artifacts/BuildLifetime.cs +++ b/build/artifacts/BuildLifetime.cs @@ -1,8 +1,21 @@ +using Artifacts.Tasks; using Common.Lifetime; +using Common.Utilities; namespace Artifacts; public class BuildLifetime : DockerBuildLifetime<BuildContext> { protected override bool UseBaseImage => true; + + public override void Setup(BuildContext context, ISetupContext info) + { + var target = context.Argument("target", "Default"); + if (target.IsEqualInvariant(nameof(ArtifactsMsBuildFullTest)) || target.IsEqualInvariant(nameof(ArtifactsExecutableTest))) + { + context.UseDocker = false; + } + + base.Setup(context, info); + } } diff --git a/build/common/Context/DockerBuildContext.cs b/build/common/Context/DockerBuildContext.cs index 672b901daf..b1a48ee1df 100644 --- a/build/common/Context/DockerBuildContext.cs +++ b/build/common/Context/DockerBuildContext.cs @@ -4,6 +4,8 @@ namespace Common.Context; public class DockerBuildContext(ICakeContext context) : BuildContextBase(context) { + public bool UseDocker { get; set; } = true; + public bool IsDockerOnLinux { get; set; } public IEnumerable<DockerImage> Images { get; set; } = []; diff --git a/build/common/Lifetime/DockerBuildLifetime.cs b/build/common/Lifetime/DockerBuildLifetime.cs index 4c4b3a842e..41eed36912 100644 --- a/build/common/Lifetime/DockerBuildLifetime.cs +++ b/build/common/Lifetime/DockerBuildLifetime.cs @@ -12,6 +12,11 @@ public override void Setup(TContext context, ISetupContext info) { base.Setup(context, info); + if (!context.UseDocker) + { + return; + } + context.IsDockerOnLinux = context.DockerCustomCommand("info --format '{{.OSType}}'").First().Replace("'", string.Empty) == "linux"; var dockerRegistry = context.Argument(Arguments.DockerRegistry, DockerRegistry.DockerHub); From 2d702034a32f0429d46680d88e90ce908a5e96d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 12:06:57 +0000 Subject: [PATCH 281/358] (sdk): Bump dotnet-sdk from 10.0.202 to 10.0.203 Bumps [dotnet-sdk](https://github.com/dotnet/sdk) from 10.0.202 to 10.0.203. - [Release notes](https://github.com/dotnet/sdk/releases) - [Commits](https://github.com/dotnet/sdk/commits) --- updated-dependencies: - dependency-name: dotnet-sdk dependency-version: 10.0.203 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index b1c1789ee5..5037283f8e 100644 --- a/global.json +++ b/global.json @@ -5,7 +5,7 @@ "src" ], "sdk": { - "version": "10.0.202" + "version": "10.0.203" }, "test": { "runner": "Microsoft.Testing.Platform" From 0a00d23066cceb44150d2c25278e21d8ec98e39c Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 22 Apr 2026 14:55:27 +0200 Subject: [PATCH 282/358] chore(deps): bump coverlet.MTP from 8.0.1 to 10.0.0 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/Directory.Packages.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 0132afaf47..553980f338 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -9,7 +9,7 @@ </PropertyGroup> <ItemGroup> <!-- common packages --> - <PackageVersion Include="coverlet.MTP" Version="8.0.1" /> + <PackageVersion Include="coverlet.MTP" Version="10.0.0" /> <PackageVersion Include="JsonSchema.Net" Version="7.3.4" /> <PackageVersion Include="LibGit2Sharp" Version="0.31.0" /> <PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0" /> @@ -55,4 +55,4 @@ <PackageVersion Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildVersion)" /> <PackageVersion Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" /> </ItemGroup> -</Project> \ No newline at end of file +</Project> From 1eacb90701d4d216c882bb1707115e45084ac474 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 22 Apr 2026 14:58:39 +0200 Subject: [PATCH 283/358] chore(deps): bump SharpYaml from 3.4.0 to 3.7.0 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 553980f338..2b21ccf939 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -40,7 +40,7 @@ <PackageVersion Include="NUnit" Version="4.5.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.12.0" /> <PackageVersion Include="NUnit3TestAdapter" Version="6.1.0" /> - <PackageVersion Include="SharpYaml" Version="3.4.0" /> + <PackageVersion Include="SharpYaml" Version="3.7.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> <PackageVersion Include="System.Collections.Immutable" Version="10.0.6" /> <PackageVersion Include="System.Drawing.Common" Version="10.0.5" /> From 99f042b27b920d811c5677ae49be64648ef84668 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 12:56:39 +0000 Subject: [PATCH 284/358] (deps): Bump the microsoft group with 12 updates Bumps Microsoft.Extensions.Configuration.CommandLine from 10.0.6 to 10.0.7 Bumps Microsoft.Extensions.DependencyInjection from 10.0.6 to 10.0.7 Bumps Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.6 to 10.0.7 Bumps Microsoft.Extensions.FileSystemGlobbing from 10.0.6 to 10.0.7 Bumps Microsoft.Extensions.Hosting from 10.0.6 to 10.0.7 Bumps Microsoft.Extensions.Logging.Abstractions from 10.0.6 to 10.0.7 Bumps Microsoft.Extensions.Options from 10.0.6 to 10.0.7 Bumps Microsoft.NET.Test.Sdk from 18.4.0 to 18.5.0 Bumps System.Collections.Immutable from 10.0.6 to 10.0.7 Bumps System.CommandLine from 2.0.6 to 2.0.7 Bumps System.Reflection.Metadata from 10.0.6 to 10.0.7 Bumps System.Text.Json from 10.0.6 to 10.0.7 --- updated-dependencies: - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Logging.Abstractions dependency-version: 10.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.5.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: System.CommandLine dependency-version: 2.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Configuration.CommandLine dependency-version: 10.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection dependency-version: 10.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.FileSystemGlobbing dependency-version: 10.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Hosting dependency-version: 10.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Options dependency-version: 10.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.5.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: System.Collections.Immutable dependency-version: 10.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Reflection.Metadata dependency-version: 10.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 10 +++++----- src/Directory.Packages.props | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 957627b418..aa3601df31 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -12,9 +12,9 @@ <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0-1.25277.114" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.6" /> - <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.6" /> - <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.4.0" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.7" /> + <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.7" /> + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.0" /> <PackageVersion Include="NUnit" Version="4.5.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.12.0"> <PrivateAssets>all</PrivateAssets> @@ -31,8 +31,8 @@ <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> <PackageVersion Include="Serilog.Sinks.Map" Version="2.0.0" /> - <PackageVersion Include="System.CommandLine" Version="2.0.6" /> + <PackageVersion Include="System.CommandLine" Version="2.0.7" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> - <PackageVersion Include="System.Text.Json" Version="10.0.6" /> + <PackageVersion Include="System.Text.Json" Version="10.0.7" /> </ItemGroup> </Project> \ No newline at end of file diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 2b21ccf939..0eec7b42ca 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -18,8 +18,8 @@ <PackageVersion Include="Microsoft.CodeAnalysis.VisualBasic" Version="5.3.0" /> <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0-1.25277.114" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.6" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.6" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.7" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.7" /> <PackageVersion Include="Microsoft.IO.Redist" Version="6.1.3" /> <PackageVersion Include="Polly" Version="8.6.6" /> <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> @@ -30,11 +30,11 @@ <PackageVersion Include="JunitXml.TestLogger" Version="8.0.0" /> <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.5" /> - <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.6" /> - <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.6" /> - <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.6" /> - <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.6" /> - <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.4.0" /> + <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.7" /> + <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.7" /> + <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.7" /> + <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.7" /> + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.0" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> <PackageVersion Include="NUnit" Version="4.5.1" /> @@ -42,13 +42,13 @@ <PackageVersion Include="NUnit3TestAdapter" Version="6.1.0" /> <PackageVersion Include="SharpYaml" Version="3.7.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> - <PackageVersion Include="System.Collections.Immutable" Version="10.0.6" /> + <PackageVersion Include="System.Collections.Immutable" Version="10.0.7" /> <PackageVersion Include="System.Drawing.Common" Version="10.0.5" /> <PackageVersion Include="System.Formats.Nrbf" Version="10.0.5" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> - <PackageVersion Include="System.Reflection.Metadata" Version="10.0.6" /> + <PackageVersion Include="System.Reflection.Metadata" Version="10.0.7" /> <PackageVersion Include="System.Security.Cryptography.Xml" Version="10.0.5" /> - <PackageVersion Include="System.Text.Json" Version="10.0.6" /> + <PackageVersion Include="System.Text.Json" Version="10.0.7" /> </ItemGroup> <ItemGroup Condition=" '$(MicrosoftBuildVersion)' != '' "> <PackageVersion Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" /> From 1814cb55eb6c8c9b1093cfd3da55058e54683770 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 22 Apr 2026 12:11:15 +0200 Subject: [PATCH 285/358] build(deps): bump NUnit3TestAdapter from 6.1.0 to 6.2.0 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 0eec7b42ca..ae0fb16883 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -39,7 +39,7 @@ <PackageVersion Include="NSubstitute" Version="5.3.0" /> <PackageVersion Include="NUnit" Version="4.5.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.12.0" /> - <PackageVersion Include="NUnit3TestAdapter" Version="6.1.0" /> + <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> <PackageVersion Include="SharpYaml" Version="3.7.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> <PackageVersion Include="System.Collections.Immutable" Version="10.0.7" /> From 636ad610391b804bedeb0ad8d7f2391cd58b2464 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Thu, 23 Apr 2026 10:09:27 +0200 Subject: [PATCH 286/358] build(deps): bump Microsoft and System package versions to 10.0.7 Align Microsoft.Bcl.AsyncInterfaces and various System packages with the 10.0.7 release version. --- src/Directory.Packages.props | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index ae0fb16883..e8d8f684a3 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -29,7 +29,7 @@ <PackageVersion Include="JsonSchema.Net.Generation" Version="7.3.6" /> <PackageVersion Include="JunitXml.TestLogger" Version="8.0.0" /> <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> - <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.5" /> + <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.7" /> <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.7" /> <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.7" /> <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.7" /> @@ -43,11 +43,11 @@ <PackageVersion Include="SharpYaml" Version="3.7.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> <PackageVersion Include="System.Collections.Immutable" Version="10.0.7" /> - <PackageVersion Include="System.Drawing.Common" Version="10.0.5" /> - <PackageVersion Include="System.Formats.Nrbf" Version="10.0.5" /> + <PackageVersion Include="System.Drawing.Common" Version="10.0.7" /> + <PackageVersion Include="System.Formats.Nrbf" Version="10.0.7" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> <PackageVersion Include="System.Reflection.Metadata" Version="10.0.7" /> - <PackageVersion Include="System.Security.Cryptography.Xml" Version="10.0.5" /> + <PackageVersion Include="System.Security.Cryptography.Xml" Version="10.0.7" /> <PackageVersion Include="System.Text.Json" Version="10.0.7" /> </ItemGroup> <ItemGroup Condition=" '$(MicrosoftBuildVersion)' != '' "> @@ -55,4 +55,4 @@ <PackageVersion Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildVersion)" /> <PackageVersion Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" /> </ItemGroup> -</Project> +</Project> \ No newline at end of file From c84ebf096c0642521ea2bf5b8a51071863ed7003 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2026 12:25:48 +0000 Subject: [PATCH 287/358] (deps): Bump the microsoft group with 1 update Bumps Microsoft.NET.Test.Sdk from 18.5.0 to 18.5.1 --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.5.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.5.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- src/Directory.Packages.props | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index aa3601df31..ecfeca7a20 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -14,7 +14,7 @@ <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.7" /> <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.7" /> - <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.0" /> + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" /> <PackageVersion Include="NUnit" Version="4.5.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.12.0"> <PrivateAssets>all</PrivateAssets> diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index e8d8f684a3..5580bb3d3f 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -34,7 +34,7 @@ <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.7" /> <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.7" /> <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.7" /> - <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.0" /> + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> <PackageVersion Include="NUnit" Version="4.5.1" /> From 5b04771f04a4ebefe83a7da18e9117386d6fa2e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 12:34:11 +0000 Subject: [PATCH 288/358] (deps): Bump the analyzers group with 1 update Bumps NUnit.Analyzers from 4.12.0 to 4.13.0 --- updated-dependencies: - dependency-name: NUnit.Analyzers dependency-version: 4.13.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: analyzers - dependency-name: NUnit.Analyzers dependency-version: 4.13.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: analyzers ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- src/Directory.Packages.props | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index ecfeca7a20..ca2453925b 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -16,7 +16,7 @@ <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.7" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" /> <PackageVersion Include="NUnit" Version="4.5.1" /> - <PackageVersion Include="NUnit.Analyzers" Version="4.12.0"> + <PackageVersion Include="NUnit.Analyzers" Version="4.13.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageVersion> diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 5580bb3d3f..ff2e5e0117 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -38,7 +38,7 @@ <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> <PackageVersion Include="NUnit" Version="4.5.1" /> - <PackageVersion Include="NUnit.Analyzers" Version="4.12.0" /> + <PackageVersion Include="NUnit.Analyzers" Version="4.13.0" /> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> <PackageVersion Include="SharpYaml" Version="3.7.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> From 2ad84a2dfd13db3dd219b9e5a1b788715026907f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 15:50:35 +0000 Subject: [PATCH 289/358] (deps): Bump NUnit from 4.5.1 to 4.6.0 --- updated-dependencies: - dependency-name: NUnit dependency-version: 4.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index ca2453925b..b6e024621c 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -15,7 +15,7 @@ <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.7" /> <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.7" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" /> - <PackageVersion Include="NUnit" Version="4.5.1" /> + <PackageVersion Include="NUnit" Version="4.6.0" /> <PackageVersion Include="NUnit.Analyzers" Version="4.13.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> From 180b85c2d3921acf69cd636d68ab6d357a1c4b44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 May 2026 12:07:06 +0000 Subject: [PATCH 290/358] (build deps): Bump test-summary/action in /.github/workflows Bumps [test-summary/action](https://github.com/test-summary/action) from 2.4 to 2.6. - [Release notes](https://github.com/test-summary/action/releases) - [Commits](https://github.com/test-summary/action/compare/v2.4...v2.6) --- updated-dependencies: - dependency-name: test-summary/action dependency-version: '2.6' dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- .github/workflows/_unit_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index 79aefcab38..a6288bd517 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -41,7 +41,7 @@ jobs: command: 'dotnet run/build.dll --target=UnitTest --dotnet_version=${{ matrix.dotnet_version }}' - name: Test Summary - uses: test-summary/action@v2.4 + uses: test-summary/action@v2.6 if: always() && matrix.dotnet_version == '10.0' with: paths: artifacts/test-results/**/results.xml From ce59ba45b9a590ed9f1658f57102aa9136368a70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 May 2026 12:54:28 +0000 Subject: [PATCH 291/358] (deps): Bump Cake.Incubator from 10.0.0 to 11.0.0 --- updated-dependencies: - dependency-name: Cake.Incubator dependency-version: 11.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> --- build/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Directory.Packages.props b/build/Directory.Packages.props index a0fa0dcb3b..9a3dad285f 100644 --- a/build/Directory.Packages.props +++ b/build/Directory.Packages.props @@ -9,7 +9,7 @@ <PackageVersion Include="Cake.Frosting" Version="6.1.0" /> <PackageVersion Include="Cake.Frosting.Git" Version="5.0.1" /> <PackageVersion Include="Cake.Http" Version="5.1.0" /> - <PackageVersion Include="Cake.Incubator" Version="10.0.0" /> + <PackageVersion Include="Cake.Incubator" Version="11.0.0" /> <PackageVersion Include="Cake.DotNetLocalTools.Module" Version="3.0.12" /> <PackageVersion Include="Cake.Docker" Version="1.3.0" /> <PackageVersion Include="Cake.Json" Version="7.0.1" /> From f6734af200cd92c46abc0eb3da2ed0e4c494ad5a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 May 2026 14:10:54 +0000 Subject: [PATCH 292/358] (build deps): Bump gittools/cicd from 2 to 5 in /.github/workflows Bumps [gittools/cicd](https://github.com/gittools/cicd) from 2 to 5. - [Commits](https://github.com/gittools/cicd/compare/v2...v5) --- updated-dependencies: - dependency-name: gittools/cicd dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> --- .github/workflows/_docker.yml | 2 +- .github/workflows/_docker_manifests.yml | 2 +- .github/workflows/_publish.yml | 4 ++-- .github/workflows/ci.yml | 2 +- .github/workflows/gittools-actions.yml | 2 +- .github/workflows/homebrew.yml | 2 +- .github/workflows/mkdocs.yml | 4 ++-- .github/workflows/public-api.yml | 4 ++-- .github/workflows/winget.yml | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/_docker.yml b/.github/workflows/_docker.yml index 46a7436f0d..f7430748bb 100644 --- a/.github/workflows/_docker.yml +++ b/.github/workflows/_docker.yml @@ -62,7 +62,7 @@ jobs: - name: Load DockerHub credentials id: dockerhub-creds if: success() && inputs.publish_images - uses: gittools/cicd/dockerhub-creds@v2 + uses: gittools/cicd/dockerhub-creds@v5 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/_docker_manifests.yml b/.github/workflows/_docker_manifests.yml index 817f110a1b..bdc362243e 100644 --- a/.github/workflows/_docker_manifests.yml +++ b/.github/workflows/_docker_manifests.yml @@ -42,7 +42,7 @@ jobs: - name: Load DockerHub credentials if: inputs.publish_manifests id: dockerhub-creds - uses: gittools/cicd/dockerhub-creds@v2 + uses: gittools/cicd/dockerhub-creds@v5 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index 9b9a746982..9145ca34d1 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -40,14 +40,14 @@ jobs: - name: Load NuGet credentials id: nuget-creds if: inputs.publish_packages - uses: gittools/cicd/nuget-creds@v2 + uses: gittools/cicd/nuget-creds@v5 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} - name: Load Chocolatey credentials id: choco-creds if: inputs.publish_packages - uses: gittools/cicd/choco-creds@v2 + uses: gittools/cicd/choco-creds@v5 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6cb1e3e255..2a6297e955 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -166,7 +166,7 @@ jobs: - name: Load DockerHub credentials id: dockerhub-creds if: env.CAN_PUBLISH == 'true' - uses: gittools/cicd/dockerhub-creds@v2 + uses: gittools/cicd/dockerhub-creds@v5 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/gittools-actions.yml b/.github/workflows/gittools-actions.yml index cfd23cf57d..33b018fbd5 100644 --- a/.github/workflows/gittools-actions.yml +++ b/.github/workflows/gittools-actions.yml @@ -35,7 +35,7 @@ jobs: - name: Load GitHub App credentials id: github-app-creds - uses: gittools/cicd/github-app-creds@v2 + uses: gittools/cicd/github-app-creds@v5 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/homebrew.yml b/.github/workflows/homebrew.yml index 780b11152e..0b9091b4cc 100644 --- a/.github/workflows/homebrew.yml +++ b/.github/workflows/homebrew.yml @@ -31,7 +31,7 @@ jobs: - name: Load GitHub release token id: github-creds - uses: gittools/cicd/github-creds@v2 + uses: gittools/cicd/github-creds@v5 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 337b9ef8a3..7b878553c1 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -29,7 +29,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: gittools/cicd/checkout@v2 + uses: gittools/cicd/checkout@v5 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} fetch-depth: 1 @@ -46,6 +46,6 @@ jobs: working-directory: ${{ github.workspace }}/docs/input - name: Commit and push markdown docs changes - uses: gittools/cicd/git-commit-push@v2 + uses: gittools/cicd/git-commit-push@v5 with: message: "include markdown docs changes" diff --git a/.github/workflows/public-api.yml b/.github/workflows/public-api.yml index f88e8ac8c1..58a5205a72 100644 --- a/.github/workflows/public-api.yml +++ b/.github/workflows/public-api.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: gittools/cicd/checkout@v2 + uses: gittools/cicd/checkout@v5 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} fetch-depth: 0 @@ -24,6 +24,6 @@ jobs: run: ./src/mark-shipped.ps1 - name: Commit and push changes - uses: gittools/cicd/git-commit-push@v2 + uses: gittools/cicd/git-commit-push@v5 with: message: "include public API changes" diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 49e37b915c..6a6852a5ac 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -35,7 +35,7 @@ jobs: - name: Load GitHub release token id: github-creds - uses: gittools/cicd/github-creds@v2 + uses: gittools/cicd/github-creds@v5 with: op_service_account_token: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} From 6f7e7534e2b053d41b88e9995eea8c157b7a6055 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 18:45:49 +0000 Subject: [PATCH 293/358] (deps): Bump the microsoft group with 8 updates Bumps Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.7 to 10.0.8 Bumps Microsoft.Extensions.FileSystemGlobbing from 10.0.7 to 10.0.8 Bumps Microsoft.Extensions.Logging.Abstractions from 10.0.7 to 10.0.8 Bumps Microsoft.Extensions.Options from 10.0.7 to 10.0.8 Bumps System.Collections.Immutable from 10.0.7 to 10.0.8 Bumps System.CommandLine from 2.0.7 to 2.0.8 Bumps System.Reflection.Metadata from 10.0.7 to 10.0.8 Bumps System.Text.Json from 10.0.7 to 10.0.8 --- updated-dependencies: - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Logging.Abstractions dependency-version: 10.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.CommandLine dependency-version: 2.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.FileSystemGlobbing dependency-version: 10.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Options dependency-version: 10.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Collections.Immutable dependency-version: 10.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Reflection.Metadata dependency-version: 10.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 6 +++--- src/Directory.Packages.props | 12 ++++++------ .../GitVersion.Configuration.csproj | 1 + src/GitVersion.Testing/GitVersion.Testing.csproj | 1 + 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index b6e024621c..799917b290 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -12,8 +12,8 @@ <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0-1.25277.114" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.7" /> - <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.7" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.8" /> + <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.8" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" /> <PackageVersion Include="NUnit" Version="4.6.0" /> <PackageVersion Include="NUnit.Analyzers" Version="4.13.0"> @@ -31,7 +31,7 @@ <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> <PackageVersion Include="Serilog.Sinks.Map" Version="2.0.0" /> - <PackageVersion Include="System.CommandLine" Version="2.0.7" /> + <PackageVersion Include="System.CommandLine" Version="2.0.8" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> <PackageVersion Include="System.Text.Json" Version="10.0.7" /> </ItemGroup> diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index ff2e5e0117..7f8ef08aa5 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -19,7 +19,7 @@ <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0-1.25277.114" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.7" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.7" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.8" /> <PackageVersion Include="Microsoft.IO.Redist" Version="6.1.3" /> <PackageVersion Include="Polly" Version="8.6.6" /> <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> @@ -31,9 +31,9 @@ <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.7" /> <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.7" /> - <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.7" /> + <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.8" /> <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.7" /> - <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.7" /> + <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.8" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> @@ -42,13 +42,13 @@ <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> <PackageVersion Include="SharpYaml" Version="3.7.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> - <PackageVersion Include="System.Collections.Immutable" Version="10.0.7" /> + <PackageVersion Include="System.Collections.Immutable" Version="10.0.8" /> <PackageVersion Include="System.Drawing.Common" Version="10.0.7" /> <PackageVersion Include="System.Formats.Nrbf" Version="10.0.7" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> - <PackageVersion Include="System.Reflection.Metadata" Version="10.0.7" /> + <PackageVersion Include="System.Reflection.Metadata" Version="10.0.8" /> <PackageVersion Include="System.Security.Cryptography.Xml" Version="10.0.7" /> - <PackageVersion Include="System.Text.Json" Version="10.0.7" /> + <PackageVersion Include="System.Text.Json" Version="10.0.8" /> </ItemGroup> <ItemGroup Condition=" '$(MicrosoftBuildVersion)' != '' "> <PackageVersion Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" /> diff --git a/src/GitVersion.Configuration/GitVersion.Configuration.csproj b/src/GitVersion.Configuration/GitVersion.Configuration.csproj index 79f5abf2d5..1af0a098e9 100644 --- a/src/GitVersion.Configuration/GitVersion.Configuration.csproj +++ b/src/GitVersion.Configuration/GitVersion.Configuration.csproj @@ -10,6 +10,7 @@ <ItemGroup> <PackageReference Include="SharpYaml" /> + <PackageReference Include="System.Collections.Immutable" /> </ItemGroup> <ItemGroup> diff --git a/src/GitVersion.Testing/GitVersion.Testing.csproj b/src/GitVersion.Testing/GitVersion.Testing.csproj index 4a461294b8..8a23c7235f 100644 --- a/src/GitVersion.Testing/GitVersion.Testing.csproj +++ b/src/GitVersion.Testing/GitVersion.Testing.csproj @@ -7,6 +7,7 @@ <ItemGroup> <PackageReference Include="LibGit2Sharp" /> <PackageReference Include="Shouldly" /> + <PackageReference Include="System.Collections.Immutable" /> <PackageReference Include="System.IO.Abstractions" /> <PackageReference Include="System.Reflection.Metadata" /> </ItemGroup> From 865ee21c99fb716ea73303fc3201a2f4e4a03f4c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 19:18:39 +0000 Subject: [PATCH 294/358] (sdk): Bump dotnet-sdk from 10.0.203 to 10.0.300 Bumps [dotnet-sdk](https://github.com/dotnet/sdk) from 10.0.203 to 10.0.300. - [Release notes](https://github.com/dotnet/sdk/releases) - [Commits](https://github.com/dotnet/sdk/commits/v10.0.300) --- updated-dependencies: - dependency-name: dotnet-sdk dependency-version: 10.0.300 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 5037283f8e..42519b23d9 100644 --- a/global.json +++ b/global.json @@ -5,7 +5,7 @@ "src" ], "sdk": { - "version": "10.0.203" + "version": "10.0.300" }, "test": { "runner": "Microsoft.Testing.Platform" From ae23aa02145caccc9c4cb495f296146b1c5452ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 12:29:27 +0000 Subject: [PATCH 295/358] (deps): Bump the microsoft group with 4 updates Bumps Microsoft.Extensions.Configuration.CommandLine from 10.0.7 to 10.0.8 Bumps Microsoft.Extensions.DependencyInjection from 10.0.7 to 10.0.8 Bumps Microsoft.Extensions.Hosting from 10.0.7 to 10.0.8 Bumps System.Text.Json from 10.0.7 to 10.0.8 --- updated-dependencies: - dependency-name: System.Text.Json dependency-version: 10.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Configuration.CommandLine dependency-version: 10.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection dependency-version: 10.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Hosting dependency-version: 10.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- src/Directory.Packages.props | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 799917b290..2c4a4603f5 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -33,6 +33,6 @@ <PackageVersion Include="Serilog.Sinks.Map" Version="2.0.0" /> <PackageVersion Include="System.CommandLine" Version="2.0.8" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> - <PackageVersion Include="System.Text.Json" Version="10.0.7" /> + <PackageVersion Include="System.Text.Json" Version="10.0.8" /> </ItemGroup> </Project> \ No newline at end of file diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 7f8ef08aa5..ed429c791f 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -18,7 +18,7 @@ <PackageVersion Include="Microsoft.CodeAnalysis.VisualBasic" Version="5.3.0" /> <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0-1.25277.114" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.7" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.8" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.8" /> <PackageVersion Include="Microsoft.IO.Redist" Version="6.1.3" /> <PackageVersion Include="Polly" Version="8.6.6" /> @@ -30,9 +30,9 @@ <PackageVersion Include="JunitXml.TestLogger" Version="8.0.0" /> <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.7" /> - <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.7" /> + <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.8" /> <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.8" /> - <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.7" /> + <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.8" /> <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.8" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> From ef18cb46472ee1089f026894d6587a29099ad6e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 May 2026 12:45:34 +0000 Subject: [PATCH 296/358] (deps): Bump Scriban from 7.1.0 to 7.2.0 --- updated-dependencies: - dependency-name: Scriban dependency-version: 7.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 2c4a4603f5..0776fcb048 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Scriban" Version="7.1.0" /> + <PackageVersion Include="Scriban" Version="7.2.0" /> <PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> From 55782166f19525591db0058d319bdec091ba4c15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 May 2026 12:58:44 +0000 Subject: [PATCH 297/358] (deps): Bump NUnit from 4.5.1 to 4.6.0 --- updated-dependencies: - dependency-name: NUnit dependency-version: 4.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index ed429c791f..44a1feb7a2 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -37,7 +37,7 @@ <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> - <PackageVersion Include="NUnit" Version="4.5.1" /> + <PackageVersion Include="NUnit" Version="4.6.0" /> <PackageVersion Include="NUnit.Analyzers" Version="4.13.0" /> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> <PackageVersion Include="SharpYaml" Version="3.7.0" /> From e0f51586036b902dc014eee5d37d3738688643ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 May 2026 12:52:38 +0000 Subject: [PATCH 298/358] (deps): Bump SharpYaml from 3.7.0 to 3.7.1 --- updated-dependencies: - dependency-name: SharpYaml dependency-version: 3.7.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 44a1feb7a2..b2ece001b3 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -40,7 +40,7 @@ <PackageVersion Include="NUnit" Version="4.6.0" /> <PackageVersion Include="NUnit.Analyzers" Version="4.13.0" /> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> - <PackageVersion Include="SharpYaml" Version="3.7.0" /> + <PackageVersion Include="SharpYaml" Version="3.7.1" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> <PackageVersion Include="System.Collections.Immutable" Version="10.0.8" /> <PackageVersion Include="System.Drawing.Common" Version="10.0.7" /> From b1a8b4ceee6661e2d417c1ab0200a4654f92e76b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 May 2026 12:51:00 +0000 Subject: [PATCH 299/358] (deps): Bump JsonSchema.Net.Generation from 7.3.6 to 7.3.7 --- updated-dependencies: - dependency-name: JsonSchema.Net.Generation dependency-version: 7.3.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index b2ece001b3..cc87525c1e 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> <PackageVersion Include="Buildalyzer" Version="8.0.0" /> - <PackageVersion Include="JsonSchema.Net.Generation" Version="7.3.6" /> + <PackageVersion Include="JsonSchema.Net.Generation" Version="7.3.7" /> <PackageVersion Include="JunitXml.TestLogger" Version="8.0.0" /> <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.7" /> From a5118a7e56f10798f470fb1b43525f0ea2a6c799 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 22:26:48 +0000 Subject: [PATCH 300/358] (deps): Bump coverlet.MTP from 10.0.0 to 10.0.1 --- updated-dependencies: - dependency-name: coverlet.MTP dependency-version: 10.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index cc87525c1e..a92d543bf8 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -9,7 +9,7 @@ </PropertyGroup> <ItemGroup> <!-- common packages --> - <PackageVersion Include="coverlet.MTP" Version="10.0.0" /> + <PackageVersion Include="coverlet.MTP" Version="10.0.1" /> <PackageVersion Include="JsonSchema.Net" Version="7.3.4" /> <PackageVersion Include="LibGit2Sharp" Version="0.31.0" /> <PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0" /> From a6c03481d51474f461451ed710b4c1a74d035981 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 May 2026 23:53:54 +0000 Subject: [PATCH 301/358] (deps): Bump NUnit from 4.6.0 to 4.6.1 --- updated-dependencies: - dependency-name: NUnit dependency-version: 4.6.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 0776fcb048..cc5ed9b3cb 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -15,7 +15,7 @@ <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.8" /> <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.8" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" /> - <PackageVersion Include="NUnit" Version="4.6.0" /> + <PackageVersion Include="NUnit" Version="4.6.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.13.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> From ce52901b9028a4db8e3568ea29fb75366793119d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 18:49:28 +0000 Subject: [PATCH 302/358] (deps): Bump NUnit from 4.6.0 to 4.6.1 --- updated-dependencies: - dependency-name: NUnit dependency-version: 4.6.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index a92d543bf8..4354c9e24d 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -37,7 +37,7 @@ <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> - <PackageVersion Include="NUnit" Version="4.6.0" /> + <PackageVersion Include="NUnit" Version="4.6.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.13.0" /> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> <PackageVersion Include="SharpYaml" Version="3.7.1" /> From bd6d37f75b1d1c891da7379e3592c603ca0d79c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 23 May 2026 12:12:20 +0000 Subject: [PATCH 303/358] (deps): Bump the microsoft group with 1 update Bumps Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing from 1.1.3 to 1.1.4 --- updated-dependencies: - dependency-name: Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing dependency-version: 1.1.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index cc5ed9b3cb..daf6e6acd2 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -7,7 +7,7 @@ <PackageVersion Include="LibGit2Sharp" Version="0.31.0" /> <PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0" /> <PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.3.0" /> - <PackageVersion Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing" Version="1.1.3" /> + <PackageVersion Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing" Version="1.1.4" /> <PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="5.3.0" /> <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0-1.25277.114" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> From 8b37c191786b19ed4f84b98b17756c463845772e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 May 2026 18:33:03 +0000 Subject: [PATCH 304/358] (deps): Bump Scriban from 7.2.0 to 7.2.1 --- updated-dependencies: - dependency-name: Scriban dependency-version: 7.2.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index daf6e6acd2..f899ecd8ef 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Scriban" Version="7.2.0" /> + <PackageVersion Include="Scriban" Version="7.2.1" /> <PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> From 8bec6a20687147c53a79d1efb023daf2e0eefb3c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 May 2026 18:40:21 +0000 Subject: [PATCH 305/358] (deps): Bump JsonSchema.Net.Generation from 7.3.7 to 7.3.9 --- updated-dependencies: - dependency-name: JsonSchema.Net.Generation dependency-version: 7.3.9 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 4354c9e24d..8117822467 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> <PackageVersion Include="Buildalyzer" Version="8.0.0" /> - <PackageVersion Include="JsonSchema.Net.Generation" Version="7.3.7" /> + <PackageVersion Include="JsonSchema.Net.Generation" Version="7.3.9" /> <PackageVersion Include="JunitXml.TestLogger" Version="8.0.0" /> <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.7" /> From 751fbb20378da125b5eb79abe44e35bb1f040944 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 May 2026 20:00:44 +0000 Subject: [PATCH 306/358] (deps): Bump Cake.Frosting from 6.1.0 to 6.2.0 --- updated-dependencies: - dependency-name: Cake.Frosting dependency-version: 6.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- build/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Directory.Packages.props b/build/Directory.Packages.props index 9a3dad285f..85619e9afc 100644 --- a/build/Directory.Packages.props +++ b/build/Directory.Packages.props @@ -6,7 +6,7 @@ <PackageVersion Include="Cake.Compression" Version="0.4.0" /> <PackageVersion Include="Cake.Codecov" Version="6.0.0" /> <PackageVersion Include="Cake.Coverlet" Version="6.0.1" /> - <PackageVersion Include="Cake.Frosting" Version="6.1.0" /> + <PackageVersion Include="Cake.Frosting" Version="6.2.0" /> <PackageVersion Include="Cake.Frosting.Git" Version="5.0.1" /> <PackageVersion Include="Cake.Http" Version="5.1.0" /> <PackageVersion Include="Cake.Incubator" Version="11.0.0" /> From 1dd2ddb70ce3c130b3de775a5cc933961b074de0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 19:47:51 +0000 Subject: [PATCH 307/358] (deps): Bump the microsoft group with 1 update Bumps Microsoft.NET.Test.Sdk from 18.5.1 to 18.6.0 --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- src/Directory.Packages.props | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index f899ecd8ef..89524be761 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -14,7 +14,7 @@ <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.8" /> <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.8" /> - <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" /> + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.6.0" /> <PackageVersion Include="NUnit" Version="4.6.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.13.0"> <PrivateAssets>all</PrivateAssets> diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 8117822467..66537b3235 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -34,7 +34,7 @@ <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.8" /> <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.8" /> <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.8" /> - <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" /> + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.6.0" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> <PackageVersion Include="NUnit" Version="4.6.1" /> From c3ee318000bb7f00bf1b91e90f2ca7c1e61ac749 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 20:19:06 +0000 Subject: [PATCH 308/358] (deps): Bump PolySharp from 1.15.0 to 1.16.0 --- updated-dependencies: - dependency-name: PolySharp dependency-version: 1.16.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index f899ecd8ef..fd1d05cebe 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -22,7 +22,7 @@ </PackageVersion> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> <PackageVersion Include="Polly" Version="8.6.6" /> - <PackageVersion Include="PolySharp" Version="1.15.0" /> + <PackageVersion Include="PolySharp" Version="1.16.0" /> <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> From ddffb5043d5fd47ea2403fefd9e3bdfd207dc981 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 May 2026 13:42:44 +0000 Subject: [PATCH 309/358] (deps): Bump SharpYaml from 3.7.1 to 3.8.0 --- updated-dependencies: - dependency-name: SharpYaml dependency-version: 3.8.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 66537b3235..9871e5874c 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -40,7 +40,7 @@ <PackageVersion Include="NUnit" Version="4.6.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.13.0" /> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> - <PackageVersion Include="SharpYaml" Version="3.7.1" /> + <PackageVersion Include="SharpYaml" Version="3.8.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> <PackageVersion Include="System.Collections.Immutable" Version="10.0.8" /> <PackageVersion Include="System.Drawing.Common" Version="10.0.7" /> From 2b2eb718cb4663760d3d8d983b6caa94d60d80eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 30 May 2026 12:43:13 +0000 Subject: [PATCH 310/358] (deps): Bump Scriban from 7.2.1 to 7.2.3 --- updated-dependencies: - dependency-name: Scriban dependency-version: 7.2.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index d4173962bc..d4b249eb7c 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Scriban" Version="7.2.1" /> + <PackageVersion Include="Scriban" Version="7.2.3" /> <PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> From b8af678a925aded0d1b832244314fc3be892035e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 11:27:03 +0000 Subject: [PATCH 311/358] (deps): Bump the analyzers group with 1 update Bumps NUnit.Analyzers from 4.13.0 to 4.14.0 --- updated-dependencies: - dependency-name: NUnit.Analyzers dependency-version: 4.14.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: analyzers - dependency-name: NUnit.Analyzers dependency-version: 4.14.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: analyzers ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- src/Directory.Packages.props | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index d4b249eb7c..7a0d0bfeb1 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -16,7 +16,7 @@ <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.8" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.6.0" /> <PackageVersion Include="NUnit" Version="4.6.1" /> - <PackageVersion Include="NUnit.Analyzers" Version="4.13.0"> + <PackageVersion Include="NUnit.Analyzers" Version="4.14.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageVersion> diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 9871e5874c..3ff62795ad 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -38,7 +38,7 @@ <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> <PackageVersion Include="NUnit" Version="4.6.1" /> - <PackageVersion Include="NUnit.Analyzers" Version="4.13.0" /> + <PackageVersion Include="NUnit.Analyzers" Version="4.14.0" /> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> <PackageVersion Include="SharpYaml" Version="3.8.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> From 4ee933937abf8cc21514acbff306583a44ebc678 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jun 2026 12:53:47 +0000 Subject: [PATCH 312/358] (deps): Bump SharpYaml from 3.8.0 to 3.9.0 --- updated-dependencies: - dependency-name: SharpYaml dependency-version: 3.9.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 3ff62795ad..2250670bd2 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -40,7 +40,7 @@ <PackageVersion Include="NUnit" Version="4.6.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.14.0" /> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> - <PackageVersion Include="SharpYaml" Version="3.8.0" /> + <PackageVersion Include="SharpYaml" Version="3.9.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> <PackageVersion Include="System.Collections.Immutable" Version="10.0.8" /> <PackageVersion Include="System.Drawing.Common" Version="10.0.7" /> From 369f1144b9915b615682c02f34df82d39963aaf6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jun 2026 13:28:04 +0000 Subject: [PATCH 313/358] (deps): Bump Cake.Docker from 1.3.0 to 1.5.0 --- updated-dependencies: - dependency-name: Cake.Docker dependency-version: 1.5.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- build/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Directory.Packages.props b/build/Directory.Packages.props index 85619e9afc..daeee9559b 100644 --- a/build/Directory.Packages.props +++ b/build/Directory.Packages.props @@ -11,7 +11,7 @@ <PackageVersion Include="Cake.Http" Version="5.1.0" /> <PackageVersion Include="Cake.Incubator" Version="11.0.0" /> <PackageVersion Include="Cake.DotNetLocalTools.Module" Version="3.0.12" /> - <PackageVersion Include="Cake.Docker" Version="1.3.0" /> + <PackageVersion Include="Cake.Docker" Version="1.5.0" /> <PackageVersion Include="Cake.Json" Version="7.0.1" /> <PackageVersion Include="Cake.Npx" Version="1.7.0" /> <PackageVersion Include="Cake.Wyam" Version="2.2.14" /> From 865e71b60b058bd4872e84559ba926fb55a42743 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jun 2026 17:17:33 +0200 Subject: [PATCH 314/358] (build deps): bump codecov/codecov-action in /.github/workflows (#4962) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6 to 7. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v6...v7) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/_unit_tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index a6288bd517..a749c7c30a 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -47,7 +47,7 @@ jobs: paths: artifacts/test-results/**/results.xml - name: Upload Coverage - uses: codecov/codecov-action@v6 + uses: codecov/codecov-action@v7 if: success() && inputs.publish_coverage && matrix.dotnet_version == '10.0' with: files: artifacts/test-results/**/results.xml @@ -55,7 +55,7 @@ jobs: use_oidc: true - name: Upload Coverage - uses: codecov/codecov-action@v6 + uses: codecov/codecov-action@v7 if: success() && inputs.publish_coverage && matrix.dotnet_version == '10.0' with: directory: artifacts/test-results From 84244af020ef341ced815303ac65132d98b36bf3 Mon Sep 17 00:00:00 2001 From: Jonas Nyrup <jnyrup@users.noreply.github.com> Date: Sun, 7 Jun 2026 18:44:19 +0200 Subject: [PATCH 315/358] Fix computing next `Depth` from `parentIteration` Parenthesize `??` as `+` binds stronger --- .../MainlineIterationTests.cs | 19 +++++++++++++++++++ .../Mainline/MainlineIteration.cs | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 src/GitVersion.Core.Tests/VersionCalculation/MainlineIterationTests.cs diff --git a/src/GitVersion.Core.Tests/VersionCalculation/MainlineIterationTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/MainlineIterationTests.cs new file mode 100644 index 0000000000..cb1abcf6c5 --- /dev/null +++ b/src/GitVersion.Core.Tests/VersionCalculation/MainlineIterationTests.cs @@ -0,0 +1,19 @@ +using GitVersion.Configuration; +using GitVersion.VersionCalculation.Mainline; + +namespace GitVersion.Core.Tests.VersionCalculation; + +[TestFixture] +public class MainlineIterationTests +{ + [Test] + public void ChildIsDeeperThanParent() + { + var configuration = new BranchConfiguration(); + var parent = new MainlineIteration("id0", new("canonical0"), configuration, null, null); + var child = new MainlineIteration("id1", new("canonical1"), configuration, parent, null); + + parent.Depth.ShouldBe(1); + child.Depth.ShouldBe(2); + } +} diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineIteration.cs b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineIteration.cs index efae207281..e9032754e6 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineIteration.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineIteration.cs @@ -55,7 +55,7 @@ public MainlineIteration(string id, ReferenceName branchName, IBranchConfigurati MainlineIteration? parentIteration, MainlineCommit? parentCommit) { Id = id.NotNullOrEmpty(); - Depth = parentIteration?.Depth ?? 0 + 1; + Depth = (parentIteration?.Depth ?? 0) + 1; BranchName = branchName.NotNull(); Configuration = configuration.NotNull(); ParentIteration = parentIteration; From 0ddcf196b285d6af33d1d502aeb1826b2b557693 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 12:43:35 +0000 Subject: [PATCH 316/358] (deps): Bump Scriban from 7.2.3 to 7.2.4 --- updated-dependencies: - dependency-name: Scriban dependency-version: 7.2.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 7a0d0bfeb1..e99d1117ac 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Scriban" Version="7.2.3" /> + <PackageVersion Include="Scriban" Version="7.2.4" /> <PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> From cf31bd5ccb559e69e4453cee6f01ae6adca83279 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 20:16:59 +0000 Subject: [PATCH 317/358] (sdk): bump dotnet-sdk from 10.0.300 to 10.0.301 Bumps [dotnet-sdk](https://github.com/dotnet/sdk) from 10.0.300 to 10.0.301. - [Release notes](https://github.com/dotnet/sdk/releases) - [Commits](https://github.com/dotnet/sdk/compare/v10.0.300...v10.0.301) --- updated-dependencies: - dependency-name: dotnet-sdk dependency-version: 10.0.301 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 42519b23d9..2924e58a3b 100644 --- a/global.json +++ b/global.json @@ -5,7 +5,7 @@ "src" ], "sdk": { - "version": "10.0.300" + "version": "10.0.301" }, "test": { "runner": "Microsoft.Testing.Platform" From 9bab3eeb4de2fe83e015894350d9e3be24391abe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 21:34:04 +0000 Subject: [PATCH 318/358] (deps): Bump the microsoft group with 11 updates Bumps Microsoft.Extensions.Configuration.CommandLine from 10.0.8 to 10.0.9 Bumps Microsoft.Extensions.DependencyInjection from 10.0.8 to 10.0.9 Bumps Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.8 to 10.0.9 Bumps Microsoft.Extensions.FileSystemGlobbing from 10.0.8 to 10.0.9 Bumps Microsoft.Extensions.Hosting from 10.0.8 to 10.0.9 Bumps Microsoft.Extensions.Logging.Abstractions from 10.0.8 to 10.0.9 Bumps Microsoft.Extensions.Options from 10.0.8 to 10.0.9 Bumps System.Collections.Immutable from 10.0.8 to 10.0.9 Bumps System.CommandLine from 2.0.8 to 2.0.9 Bumps System.Reflection.Metadata from 10.0.8 to 10.0.9 Bumps System.Text.Json from 10.0.8 to 10.0.9 --- updated-dependencies: - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Logging.Abstractions dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.CommandLine dependency-version: 2.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Configuration.CommandLine dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.FileSystemGlobbing dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Hosting dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Options dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Collections.Immutable dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Reflection.Metadata dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: System.Text.Json dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 8 ++++---- src/Directory.Packages.props | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index e99d1117ac..5f612e24d4 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -12,8 +12,8 @@ <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0-1.25277.114" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.8" /> - <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.8" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.9" /> + <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.9" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.6.0" /> <PackageVersion Include="NUnit" Version="4.6.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.14.0"> @@ -31,8 +31,8 @@ <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> <PackageVersion Include="Serilog.Sinks.Map" Version="2.0.0" /> - <PackageVersion Include="System.CommandLine" Version="2.0.8" /> + <PackageVersion Include="System.CommandLine" Version="2.0.9" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> - <PackageVersion Include="System.Text.Json" Version="10.0.8" /> + <PackageVersion Include="System.Text.Json" Version="10.0.9" /> </ItemGroup> </Project> \ No newline at end of file diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 2250670bd2..97a6b68679 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -18,8 +18,8 @@ <PackageVersion Include="Microsoft.CodeAnalysis.VisualBasic" Version="5.3.0" /> <PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="5.0.0-1.25277.114" /> <PackageVersion Include="Microsoft.CSharp" Version="4.7.0" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.8" /> - <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.8" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.9" /> + <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.9" /> <PackageVersion Include="Microsoft.IO.Redist" Version="6.1.3" /> <PackageVersion Include="Polly" Version="8.6.6" /> <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> @@ -30,10 +30,10 @@ <PackageVersion Include="JunitXml.TestLogger" Version="8.0.0" /> <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.7" /> - <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.8" /> - <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.8" /> - <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.8" /> - <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.8" /> + <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.9" /> + <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.9" /> + <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.9" /> + <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.9" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.6.0" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> @@ -42,13 +42,13 @@ <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> <PackageVersion Include="SharpYaml" Version="3.9.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> - <PackageVersion Include="System.Collections.Immutable" Version="10.0.8" /> + <PackageVersion Include="System.Collections.Immutable" Version="10.0.9" /> <PackageVersion Include="System.Drawing.Common" Version="10.0.7" /> <PackageVersion Include="System.Formats.Nrbf" Version="10.0.7" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> - <PackageVersion Include="System.Reflection.Metadata" Version="10.0.8" /> + <PackageVersion Include="System.Reflection.Metadata" Version="10.0.9" /> <PackageVersion Include="System.Security.Cryptography.Xml" Version="10.0.7" /> - <PackageVersion Include="System.Text.Json" Version="10.0.8" /> + <PackageVersion Include="System.Text.Json" Version="10.0.9" /> </ItemGroup> <ItemGroup Condition=" '$(MicrosoftBuildVersion)' != '' "> <PackageVersion Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" /> From eb4d08988562e849c25fb8aa94f02ee455fd494e Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 10 Jun 2026 10:01:00 +0200 Subject: [PATCH 319/358] docs: add CLAUDE.md for Claude Code guidance Introduce a project-specific guide to help Claude Code understand the repository structure, build commands, and development conventions. --- CLAUDE.md | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000000..a8f55ac9e5 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,86 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project overview + +GitVersion is a multi-project .NET repository that calculates semantic versions from Git history. It supports multiple versioning strategies (GitFlow, GitHubFlow, Mainline) and integrates with CI/CD systems (GitHub Actions, Azure Pipelines, TeamCity, etc.). + +## Developer commands + +```bash +# Build +dotnet build ./src/GitVersion.slnx +dotnet build ./new-cli/GitVersion.slnx + +# Test +dotnet test ./src/GitVersion.slnx +dotnet test --project ./src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj + +# Run the legacy CLI locally +dotnet run --project src/GitVersion.App + +# Run the new CLI locally +dotnet run --project new-cli/GitVersion.Cli + +# Format +dotnet format ./src/GitVersion.slnx +dotnet format --verify-no-changes ./src/GitVersion.slnx # CI check + +# Regenerate schemas (after changing GitVersionVariables or GitVersionConfiguration) +./build.ps1 -Stage build -Target BuildPrepare +./build.ps1 -Stage docs -Target GenerateSchemas +``` + +## Architecture + +The repo has two parallel solution trees: + +### `src/` — legacy/stable CLI (`src/GitVersion.slnx`) + +| Project | Role | +|---|---| +| `GitVersion.Core` | Core version calculation logic, version calculators, version search strategies | +| `GitVersion.Configuration` | Config loading/validation (YAML), `ConfigurationFileLocator.cs` | +| `GitVersion.App` | CLI entry point | +| `GitVersion.BuildAgents` | Platform adapters; write `GitVersion_`-prefixed env vars — preserve that prefix | +| `GitVersion.LibGit2Sharp` | Git repository access | +| `GitVersion.Output` | JSON/env/text output formatters | +| `GitVersion.MsBuild` | MSBuild task integration | +| `GitVersion.Testing` | Shared test fixtures and builders | + +Key internal directories in `GitVersion.Core`: +- `VersionCalculation/VersionCalculators/` — deployment-mode calculators (Mainline, ContinuousDeployment, ContinuousDelivery) +- `VersionCalculation/VersionSearchStrategies/` — strategies for finding a base version in Git history +- `VersionCalculation/Mainline/` — mainline versioning implementation + +### `new-cli/` — new CLI (`new-cli/GitVersion.slnx`, actively developed) + +Plugin-based architecture: `GitVersion.Cli`, `GitVersion.Core`, `GitVersion.Calculation`, `GitVersion.Configuration`, `GitVersion.Normalization`, `GitVersion.Output`, `GitVersion.Common`, `GitVersion.Core.Libgit2Sharp`, `GitVersion.Cli.Generator`. + +Each tree has its own `Directory.Packages.props` for centralized package versions. + +## Conventions + +- **Package versions**: update `src/Directory.Packages.props` (or `new-cli/Directory.Packages.props`), not individual csproj files. Add packages via `dotnet add package <Package> --version <Version>`. +- **Config file names**: `GitVersion.yml`, `GitVersion.yaml`, `.GitVersion.yml`, `.GitVersion.yaml` — see `ConfigurationFileLocator.cs` for the lookup order. +- **Code style**: defined in `.editorconfig`; run `dotnet format` to apply. C# latest features, nullable reference types, implicit usings enabled. +- **Commit style**: prefer atomic commits; rebase onto `main` rather than merging. +- **CLI output changes**: update `docs/` examples and build-agent adapters that parse JSON or env vars. + +## Testing + +Integration tests live in `src/GitVersion.Core.Tests/IntegrationTests/` with a scenario class per branch type (`MainScenarios`, `FeatureBranchScenarios`, `ReleaseScenarios`, etc.). Use `fixture.AssertFullSemver("x.y.z-label.n", configuration)` to assert calculated versions. + +```csharp +using var fixture = new EmptyRepositoryFixture(); +fixture.Repository.MakeATaggedCommit("1.0.0"); +fixture.Repository.CreateBranch("feature/my-feature"); +fixture.Checkout("feature/my-feature"); // use fixture.Checkout(), not fixture.Repository.Checkout() +fixture.Repository.MakeACommit(); + +var configuration = GitFlowConfigurationBuilder.New.Build(); +fixture.AssertFullSemver("1.0.1-my-feature.1", configuration); +``` + +Test stack: NUnit 4.x, Shouldly assertions, NSubstitute mocks, `EmptyRepositoryFixture` / `BaseGitFlowRepositoryFixture`, config builders (`GitFlowConfigurationBuilder`, `GitHubFlowConfigurationBuilder`, `EmptyConfigurationBuilder`). \ No newline at end of file From 663492115fd66dc6c0426cc59bb2c99874ea0ff1 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 10 Jun 2026 10:07:29 +0200 Subject: [PATCH 320/358] docs: consolidate agent instructions and update C# 14 conventions Move detailed Copilot instructions to AGENTS.md to centralize repository guidance and document preferred C# 14 syntax patterns like the field keyword and extension members. --- .github/copilot-instructions.md | 93 +-------------------------------- AGENTS.md | 10 ++++ CLAUDE.md | 8 ++- 3 files changed, 18 insertions(+), 93 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 06c011a2f8..c5a06145a5 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,95 +1,4 @@ <!-- Copilot instructions for GitVersion repository --> # GitVersion — Copilot agent instructions -Purpose: give an AI coding agent the minimal, repo-specific knowledge needed to be productive. - -- **Big picture**: This is a multi-project .NET repository. Primary source code lives under `src/` (many projects: `GitVersion.App`, `GitVersion.Core`, `GitVersion.Configuration`, build-agent adapters, and `*Tests` projects). CLI examples and docs live under `docs/`. - -- **Key files**: - - `README.md` — project overview and links to docs. See [README.md](README.md#L1). - - `global.json` — SDK version and solution roots (`build`, `new-cli`, `src`). See [global.json](global.json#L1). - - `build.ps1` — primary build entry. Prefer using the `dotnet` CLI to build and test projects under `src/`. Build stages exist under `build/` if you need them, but day-to-day work should target the `src` solution or individual projects. See [build.ps1](build.ps1#L1). - - `src/Directory.Packages.props` — central package versioning (important when adding/upgrading NuGet deps). See [src/Directory.Packages.props](src/Directory.Packages.props#L1). - - `docs/` contain CLI examples and I/O patterns (JSON on stdout, environment outputs). See [docs](docs#L1). - - `src/GitVersion.Configuration/ConfigurationFileLocator.cs` — shows how config files are located and supported names (`GitVersion.yml`, `.GitVersion.yml`, `.yaml` variants). - -- **Architecture summary (short)**: - - `src/` contains modular .NET projects: core version calculation, configuration, output generators, and build-agent integrations. - -- **Developer workflows & concrete commands**: - - Build & test (use `dotnet` directly against the solution/projects in `src`): - - Build the main solution: - - ```bash - # Build the entire solution - dotnet build ./src/GitVersion.slnx - - # Or build a single project - dotnet build --project ./src/GitVersion.Core/GitVersion.Core.csproj - ``` - - - Run tests for the repository: - - ```bash - # Run tests for the entire solution (pass the solution file) - dotnet test ./src/GitVersion.slnx - - # Or run tests for a single project using --project - dotnet test --project ./src/GitVersion.Core/GitVersion.Core.csproj - ``` - - Run tests (solution under `src`): - - `dotnet test ./src/GitVersion.slnx` or `dotnet test --project <path-to-csproj>` - - Run the CLI locally (build & run project): - - `dotnet run --project src/GitVersion.App` - - Refer to `docs/` for examples and I/O patterns. - - - Formatting: - - Use `dotnet format` to keep code style consistent across the repo. Example commands: - - ```bash - # restore any local tools (if configured) - dotnet tool restore - - # format the solution in-place - dotnet format ./src/GitVersion.slnx - - # CI-friendly check (exit non-zero when formatting needed) - dotnet format --verify-no-changes ./src/GitVersion.slnx - ``` - -- **Conventions & patterns to follow**: - - SDK/TFM: repo uses .NET 10 in `global.json` and many projects target `net10.0`. Respect `Directory.Packages.props` when adding dependencies. - - Centralized package versions: update `src/Directory.Packages.props` rather than individual csproj package versions. - - NuGet package management: always use the `dotnet` CLI for adding/updating packages (for example `dotnet add package <Package> --version <Version>`), and update central versions in `src/Directory.Packages.props` when using centrally-managed versions. Do NOT perform repository-wide file-replace edits to bump package versions; avoid manually editing scattered csproj package lines — prefer `dotnet` commands and editing `src/Directory.Packages.props`. - - Config lookup: the code supports `GitVersion.yml`, `GitVersion.yaml` and dotted variants; use these names or pass explicit `--configfile`. - -- **Integration points**: - - Build agents: see `src/GitVersion.BuildAgents/Agents/*` for platform-specific behavior. Example: GitHub Actions writes `GitVersion_`-prefixed variables to `$GITHUB_ENV` (see [src/GitVersion.BuildAgents/Agents/GitHubActions.cs](src/GitVersion.BuildAgents/Agents/GitHubActions.cs#L1)). - - Many build-agent adapters write environment variables with a `GitVersion_` prefix — keep that prefix when reading/writing outputs. - -- **What to look for when changing behavior**: - - If you change CLI output shape: update `docs/` examples and adjust build-agent adapters that parse JSON or environment variables. - - If you add dependencies: update `src/Directory.Packages.props` and validate with the `dotnet` CLI (example below). - -- **Quick pointers for the agent**: - - Prefer editing/adding small focused changes under `src/` and run `dotnet test` on the affected test project(s). - - Terminal reliability tip (for `gh` and other interactive CLI tools): if foreground terminal output is truncated or switches to an alternate buffer, run the command with `isBackground=true` and then read full output with `get_terminal_output`. Also set `GH_PAGER=cat` and `GH_FORCE_TTY=0` for `gh` commands to reduce pager/TTY issues. - - Example workflow: - - ```text - 1) run_in_terminal( - command: "GH_PAGER=cat GH_FORCE_TTY=0 gh pr view 4840 --json number,title,url", - isBackground: true - ) - 2) get_terminal_output(<terminal_id>) - ``` - - Use the `dotnet` CLI to validate packaging and cross-project integration, for example: - - ```bash - dotnet build ./src/GitVersion.slnx - dotnet test ./src/GitVersion.slnx - dotnet format --verify-no-changes ./src/GitVersion.slnx - ``` - -If anything here is unclear or you'd like additional examples (e.g., how build agents consume outputs, or a walkthrough to run a specific test), tell me which area to expand. +See [AGENTS.md](../AGENTS.md) for repo-specific guidance (architecture, developer commands, conventions, and testing patterns). \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index fca8150a3b..b95de44f33 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -89,12 +89,22 @@ dotnet run --project new-cli/GitVersion.Cli ## Conventions - **SDK / TFM**: .NET 10 (`global.json`); most projects target `net10.0`. +- **C# version**: `LangVersion=latest` (C# 14). Prefer new syntax where it improves clarity: + - `field` keyword — access auto-property backing field inside the property body instead of a manual backing field + - Extension members — use the new `extension(Type t) { }` block syntax for extension methods/properties + - Null-conditional assignment — `x?.Property = value` + - `params` collections — `params` now works with any collection type, not just arrays + - Partial properties — analogous to partial methods for source generators - **Package versions**: update `src/Directory.Packages.props`, not individual csproj files. Add packages via `dotnet add package <Package> --version <Version>`. - **Config file names**: `GitVersion.yml`, `GitVersion.yaml`, `.GitVersion.yml`, `.GitVersion.yaml` — use these names or pass `--configfile`. - **Code style**: `.editorconfig` defines style; run `dotnet format` to apply. - **Commit style**: prefer atomic commits; rebase onto `main` rather than merging. - **Tests**: integration tests live in `src/GitVersion.Core.Tests/IntegrationTests/`. Use `EmptyRepositoryFixture` / `BaseGitFlowRepositoryFixture` and builder patterns (`GitFlowConfigurationBuilder`, `GitHubFlowConfigurationBuilder`). +## Tips + +- For `gh` commands, set `GH_PAGER=cat GH_FORCE_TTY=0` to avoid pager/TTY issues in non-interactive terminals. + ## What to check when changing behavior - CLI output shape changed → update `docs/` examples and build-agent adapters that parse JSON or env vars. diff --git a/CLAUDE.md b/CLAUDE.md index a8f55ac9e5..6093296f3b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -64,7 +64,13 @@ Each tree has its own `Directory.Packages.props` for centralized package version - **Package versions**: update `src/Directory.Packages.props` (or `new-cli/Directory.Packages.props`), not individual csproj files. Add packages via `dotnet add package <Package> --version <Version>`. - **Config file names**: `GitVersion.yml`, `GitVersion.yaml`, `.GitVersion.yml`, `.GitVersion.yaml` — see `ConfigurationFileLocator.cs` for the lookup order. -- **Code style**: defined in `.editorconfig`; run `dotnet format` to apply. C# latest features, nullable reference types, implicit usings enabled. +- **Code style**: defined in `.editorconfig`; run `dotnet format` to apply. Nullable reference types and implicit usings are enabled. +- **C# version**: `LangVersion=latest` (C# 14). Prefer new syntax where it improves clarity: + - `field` keyword — access auto-property backing field inside the property body instead of a manual backing field + - Extension members — use the new `extension(Type t) { }` block syntax for extension methods/properties + - Null-conditional assignment — `x?.Property = value` + - `params` collections — `params` now works with any collection type, not just arrays + - Partial properties — analogous to partial methods for source generators - **Commit style**: prefer atomic commits; rebase onto `main` rather than merging. - **CLI output changes**: update `docs/` examples and build-agent adapters that parse JSON or env vars. From 30c819d105d100955a51837f4a497e90758ce01b Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 10 Jun 2026 10:08:08 +0200 Subject: [PATCH 321/358] build(deps): remove unused package references Remove unnecessary dependencies from GitVersion.MsBuild.Tests and the central package management file. --- src/Directory.Packages.props | 4 ---- src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj | 4 ---- 2 files changed, 8 deletions(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 97a6b68679..b6e1f42d7e 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -29,7 +29,6 @@ <PackageVersion Include="JsonSchema.Net.Generation" Version="7.3.9" /> <PackageVersion Include="JunitXml.TestLogger" Version="8.0.0" /> <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> - <PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.7" /> <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.9" /> <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.9" /> <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.9" /> @@ -43,11 +42,8 @@ <PackageVersion Include="SharpYaml" Version="3.9.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> <PackageVersion Include="System.Collections.Immutable" Version="10.0.9" /> - <PackageVersion Include="System.Drawing.Common" Version="10.0.7" /> - <PackageVersion Include="System.Formats.Nrbf" Version="10.0.7" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> <PackageVersion Include="System.Reflection.Metadata" Version="10.0.9" /> - <PackageVersion Include="System.Security.Cryptography.Xml" Version="10.0.7" /> <PackageVersion Include="System.Text.Json" Version="10.0.9" /> </ItemGroup> <ItemGroup Condition=" '$(MicrosoftBuildVersion)' != '' "> diff --git a/src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj b/src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj index c84d626d89..df29f04ed4 100644 --- a/src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj +++ b/src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj @@ -3,7 +3,6 @@ <ItemGroup> <PackageReference Include="Buildalyzer" /> <PackageReference Include="LibGit2Sharp" /> - <PackageReference Include="Microsoft.Bcl.AsyncInterfaces" /> <PackageReference Include="Microsoft.Build" /> <PackageReference Include="Microsoft.Build.Tasks.Core" /> <PackageReference Include="Microsoft.Build.Utilities.Core" /> @@ -13,9 +12,6 @@ <PackageReference Include="Microsoft.Extensions.DependencyInjection" /> <PackageReference Include="Microsoft.IO.Redist" /> <PackageReference Include="MSBuild.ProjectCreation" /> - <PackageReference Include="System.Drawing.Common" /> - <PackageReference Include="System.Formats.Nrbf" /> - <PackageReference Include="System.Security.Cryptography.Xml" /> <PackageReference Include="System.Text.Json" /> </ItemGroup> From 108cf96f13f7cf2e0c11461cd786dba7b8c49b41 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2026 08:19:50 +0000 Subject: [PATCH 322/358] (deps): Bump Microsoft.Build.Utilities.Core from 18.4.0 to 18.6.3 --- updated-dependencies: - dependency-name: Microsoft.Build.Utilities.Core dependency-version: 18.6.3 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- src/GitVersion.MsBuild.Tests/Mocks/MockEngine.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index b6e1f42d7e..29ba499102 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -5,7 +5,7 @@ <PropertyGroup> <MicrosoftBuildVersion Condition=" '$(TargetFramework)' == 'net8.0' ">17.11.48</MicrosoftBuildVersion> <MicrosoftBuildVersion Condition=" '$(TargetFramework)' == 'net9.0' ">17.14.28</MicrosoftBuildVersion> - <MicrosoftBuildVersion Condition=" '$(TargetFramework)' == 'net10.0' ">18.4.0</MicrosoftBuildVersion> + <MicrosoftBuildVersion Condition=" '$(TargetFramework)' == 'net10.0' ">18.6.3</MicrosoftBuildVersion> </PropertyGroup> <ItemGroup> <!-- common packages --> diff --git a/src/GitVersion.MsBuild.Tests/Mocks/MockEngine.cs b/src/GitVersion.MsBuild.Tests/Mocks/MockEngine.cs index 6e6a5671ed..bdd793ced3 100644 --- a/src/GitVersion.MsBuild.Tests/Mocks/MockEngine.cs +++ b/src/GitVersion.MsBuild.Tests/Mocks/MockEngine.cs @@ -96,7 +96,7 @@ public BuildEngineResult BuildProjectFilesInParallel( IDictionary[] globalProperties, IList<string>[] removeGlobalProperties, string[] toolsVersion, - bool returnTargetOutputs) => new(false, null); + bool returnTargetOutputs) => new(false, []); public void Yield() { From 8bcf5ae38b360ee58f2ee6df03901bfbfafd2091 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 10 Jun 2026 13:01:42 +0200 Subject: [PATCH 323/358] chore(claude): configure Claude Code settings and permissions Enable .NET agent skills and grant permissions for common bash commands to facilitate development using Claude Code. --- .claude/settings.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .claude/settings.json diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000000..b6d226f69e --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,15 @@ +{ + "enabledPlugins": { + "dotnet-test@dotnet-agent-skills": true, + "dotnet-upgrade@dotnet-agent-skills": true + }, + "permissions": { + "allow": [ + "Bash(grep -E \"\\\\.cs$\")", + "Bash(dotnet --version)", + "Bash(dotnet restore)", + "Bash(dotnet build *)", + "Bash(dotnet test *)" + ] + } +} From 8aa6bfbb298fb8a5c6449370c11f966022104fbc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2026 11:47:43 +0000 Subject: [PATCH 324/358] (deps): Bump SharpYaml from 3.9.0 to 3.10.0 --- updated-dependencies: - dependency-name: SharpYaml dependency-version: 3.10.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 29ba499102..526414e8e3 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -39,7 +39,7 @@ <PackageVersion Include="NUnit" Version="4.6.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.14.0" /> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> - <PackageVersion Include="SharpYaml" Version="3.9.0" /> + <PackageVersion Include="SharpYaml" Version="3.10.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> <PackageVersion Include="System.Collections.Immutable" Version="10.0.9" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> From 014ae33198c64d11988f2b7d8e6f522a72161263 Mon Sep 17 00:00:00 2001 From: Robert Coltheart <robert.coltheart@gmail.com> Date: Tue, 19 May 2026 21:17:48 +1000 Subject: [PATCH 325/358] feat: add support for environment variables in branch labels --- docs/input/docs/reference/configuration.md | 2 + .../ConfigurationExtensionsTests.cs | 110 +++++++++++++++++- .../Extensions/ConfigurationExtensions.cs | 72 +++++++++--- .../Formatting/StringFormatWithExtension.cs | 30 ++++- .../Mainline/EnrichIncrement.cs | 2 +- .../Mainline/EnrichSemanticVersion.cs | 4 +- .../Mainline/MainlineContext.cs | 4 +- .../Mainline/NonTrunk/CommitOnNonTrunk.cs | 2 +- .../NonTrunk/CommitOnNonTrunkBranchedBase.cs | 2 +- .../CommitOnNonTrunkWithPreReleaseTagBase.cs | 2 +- .../CommitOnNonTrunkWithStableTagBase.cs | 2 +- .../NonTrunk/MergeCommitOnNonTrunkBase.cs | 3 +- .../Mainline/Trunk/CommitOnTrunk.cs | 2 +- .../Trunk/CommitOnTrunkBranchedBase.cs | 2 +- .../Trunk/CommitOnTrunkWithStableTagBase.cs | 2 +- .../LastCommitOnTrunkWithPreReleaseTag.cs | 2 +- .../Mainline/Trunk/MergeCommitOnTrunkBase.cs | 3 +- .../NextVersionCalculator.cs | 6 +- .../ConfiguredNextVersionVersionStrategy.cs | 5 +- .../FallbacktVersionStrategy.cs | 6 +- .../MainlineVersionStrategy.cs | 22 ++-- .../MergeMessageVersionStrategy.cs | 5 +- .../TaggedCommitVersionStrategy.cs | 6 +- .../TrackReleaseBranchesVersionStrategy.cs | 8 +- .../VersionInBranchNameVersionStrategy.cs | 5 +- 25 files changed, 248 insertions(+), 61 deletions(-) diff --git a/docs/input/docs/reference/configuration.md b/docs/input/docs/reference/configuration.md index a4955c9804..d36090c553 100644 --- a/docs/input/docs/reference/configuration.md +++ b/docs/input/docs/reference/configuration.md @@ -903,6 +903,8 @@ of `alpha.foo` with `label: 'alpha.{BranchName}'` and `regex: '^features?[\/-](? Another example: branch `features/sc-12345/some-description` would become a pre-release label of `sc-12345` with `label: '{StoryNo}'` and `regex: '^features?[\/-](?<StoryNo>sc-\d+)[-/].+'`. +You can also use environment variable placeholders with the `{env:VARIABLE_NAME}` syntax. Environment variable placeholders can also be combined with regex placeholders, for example `{BranchName}-{env:VARIABLE_NAME}`, and support fallback values using the `{env:VARIABLE_NAME ?? "fallback"}` syntax. + **Note:** To clear a default use an empty string: `label: ''` ### increment diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs index b1f4bc6be1..4099562fdf 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs @@ -51,7 +51,115 @@ public void EnsureGetBranchSpecificLabelWorksAsExpected(string branchName, strin .Build(); var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName(branchName)); - var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName(branchName), null); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName(branchName), null, new TestEnvironment()); actual.ShouldBe(expectedLabel); } + + [Test] + public void EnsureGetBranchSpecificLabelProcessesEnvironmentVariables() + { + var environment = new TestEnvironment(); + environment.SetEnvironmentVariable("GITHUB_HEAD_REF", "feature-branch"); + + var configuration = GitFlowConfigurationBuilder.New + .WithoutBranches() + .WithBranch("pull-request", builder => builder + .WithLabel("pr-{env:GITHUB_HEAD_REF}") + .WithRegularExpression(@"^pull[/-]")) + .Build(); + + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("pull-request")); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("pull-request"), null, environment); + actual.ShouldBe("pr-feature-branch"); + } + + [Test] + public void EnsureGetBranchSpecificLabelProcessesEnvironmentVariablesWithFallback() + { + var environment = new TestEnvironment(); + // Don't set GITHUB_HEAD_REF to test fallback + + var configuration = GitFlowConfigurationBuilder.New + .WithoutBranches() + .WithBranch("pull-request", builder => builder + .WithLabel("pr-{env:GITHUB_HEAD_REF ?? \"unknown\"}") + .WithRegularExpression(@"^pull[/-]")) + .Build(); + + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("pull-request")); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("pull-request"), null, environment); + actual.ShouldBe("pr-unknown"); + } + + [Test] + public void EnsureGetBranchSpecificLabelProcessesEnvironmentVariablesAndRegexPlaceholders() + { + var environment = new TestEnvironment(); + environment.SetEnvironmentVariable("GITHUB_HEAD_REF", "feature-branch"); + + var configuration = GitFlowConfigurationBuilder.New + .WithoutBranches() + .WithBranch("feature/test-branch", builder => builder + .WithLabel("{BranchName}-{env:GITHUB_HEAD_REF}") + .WithRegularExpression(@"^features?[\/-](?<BranchName>.+)")) + .Build(); + + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("feature/test-branch")); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("feature/test-branch"), null, environment); + actual.ShouldBe("test-branch-feature-branch"); + } + + [Test] + public void EnsureGetBranchSpecificLabelWorksWithoutEnvironmentWhenNoEnvPlaceholders() + { + var configuration = GitFlowConfigurationBuilder.New + .WithoutBranches() + .WithBranch("feature/test", builder => builder + .WithLabel("{BranchName}") + .WithRegularExpression(@"^features?[\/-](?<BranchName>.+)")) + .Build(); + + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("feature/test")); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("feature/test"), null, new TestEnvironment()); + actual.ShouldBe("test"); + } + + [Test] + public void EnsureGetBranchSpecificLabelThrowsWhenThrowIfNotFoundAndEnvVarMissing() + { + var environment = new TestEnvironment(); + // Do not set MISSING_VAR + + var configuration = GitFlowConfigurationBuilder.New + .WithoutBranches() + .WithBranch("pull-request", builder => builder + .WithLabel("pr-{env:MISSING_VAR}") + .WithRegularExpression(@"^pull[/-]")) + .Build(); + + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("pull-request")); + Should.Throw<ArgumentException>(() => + effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("pull-request"), null, environment, throwIfNotFound: true)); + } + + [Test] + public void EnsureGetBranchSpecificLabelProcessesEnvironmentVariablesEvenWhenRegexDoesNotMatch() + { + var environment = new TestEnvironment(); + environment.SetEnvironmentVariable("GITHUB_HEAD_REF", "feature-branch"); + + var configuration = GitFlowConfigurationBuilder.New + .WithoutBranches() + .WithBranch("pull-request", builder => builder + .WithLabel("pr-{env:GITHUB_HEAD_REF}") + .WithRegularExpression(@"^pull[/-]")) + .WithBranch("feature", builder => builder + .WithLabel("{BranchName}") + .WithRegularExpression(@"^features?[\/-](?<BranchName>.+)")) + .Build(); + + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("feature/other-branch")); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("feature/other-branch"), null, environment); + actual.ShouldBe("other-branch"); + } } diff --git a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs index 68e77ee4fd..065c376034 100644 --- a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs +++ b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs @@ -1,5 +1,7 @@ +using System.Reflection.Emit; using GitVersion.Core; using GitVersion.Extensions; +using GitVersion.Formatting; using GitVersion.Git; using GitVersion.VersionCalculation; @@ -97,12 +99,13 @@ private static bool ShouldBeIgnored(ICommit commit, IIgnoreConfiguration ignore) extension(EffectiveConfiguration configuration) { - public string? GetBranchSpecificLabel(ReferenceName branchName, string? branchNameOverride) - => GetBranchSpecificLabel(configuration, branchName.WithoutOrigin, branchNameOverride); + public string? GetBranchSpecificLabel(ReferenceName branchName, string? branchNameOverride, IEnvironment environment, bool throwIfNotFound = false) + => GetBranchSpecificLabel(configuration, branchName.WithoutOrigin, branchNameOverride, environment, throwIfNotFound); - public string? GetBranchSpecificLabel(string? branchName, string? branchNameOverride) + public string? GetBranchSpecificLabel(string? branchName, string? branchNameOverride, IEnvironment environment, bool throwIfNotFound = false) { configuration.NotNull(); + environment.NotNull(); var label = configuration.Label; if (label is null) @@ -110,25 +113,36 @@ private static bool ShouldBeIgnored(ICommit commit, IIgnoreConfiguration ignore) return label; } - var effectiveBranchName = branchNameOverride ?? branchName; - if (configuration.RegularExpression.IsNullOrWhiteSpace() || effectiveBranchName.IsNullOrEmpty()) return label; - var regex = RegexPatterns.Cache.GetOrAdd(configuration.RegularExpression); - var match = regex.Match(effectiveBranchName); - if (!match.Success) return label; - foreach (var groupName in regex.GetGroupNames()) + if (environment is not null) { - var groupValue = match.Groups[groupName].Value; - Lazy<string> escapedGroupValueLazy = new(() => groupValue.RegexReplace(RegexPatterns.SanitizeNameRegexPattern, "-")); - var placeholder = $"{{{groupName}}}"; - int index, startIndex = 0; - while ((index = label.IndexOf(placeholder, startIndex, StringComparison.InvariantCulture)) >= 0) + try { - var escapedGroupValue = escapedGroupValueLazy.Value; - label = label.Remove(index, placeholder.Length).Insert(index, escapedGroupValue); - startIndex = index + escapedGroupValue.Length; + label = label.FormatWith(new { }, environment); } + catch (ArgumentException) + { + // If environment variable is missing an dno fallback, return label as-is + // This maintains backward compatibility + } + } + + var effectiveBranchName = branchNameOverride ?? branchName; + var labelPlaceholders = BuildLabelPlaceholders(configuration.RegularExpression, effectiveBranchName); + + if (throwIfNotFound) + { + return label.FormatWith(labelPlaceholders, environment); + } + + try + { + return label.FormatWith(labelPlaceholders, environment); + } + catch (ArgumentException) + { + // If environment variable is missing and no fallback, return label as-is (backward compatibility) + return label; } - return label; } public TaggedSemanticVersions GetTaggedSemanticVersion() @@ -153,5 +167,27 @@ public TaggedSemanticVersions GetTaggedSemanticVersion() } return taggedSemanticVersion; } + + private static Dictionary<string, object> BuildLabelPlaceholders(string? regularExpression, string? effectiveBranchName) + { + var placeholders = new Dictionary<string, object>(); + + if (regularExpression.IsNullOrWhiteSpace() || effectiveBranchName.IsNullOrEmpty()) + return placeholders; + + var regex = RegexPatterns.Cache.GetOrAdd(regularExpression); + var match = regex.Match(effectiveBranchName); + + if (!match.Success) + return placeholders; + + foreach (var groupName in regex.GetGroupNames()) + { + var groupValue = match.Groups[groupName].Value; + placeholders[groupName] = groupValue.RegexReplace(RegexPatterns.SanitizeNameRegexPattern, "-"); + } + + return placeholders; + } } } diff --git a/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs b/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs index 06154aefe5..7d14bdd6cf 100644 --- a/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs +++ b/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs @@ -83,6 +83,14 @@ private static string EvaluateEnvVar(string name, string? fallback, IEnvironment } private static string EvaluateMember<T>(T source, string member, string? format, string? fallback) + { + if (source is IDictionary<string, object> dictionary) + return EvaluateMemberFromDictionary(dictionary, member, format, fallback); + else + return EvaluateMemberFromObject(source, member, format, fallback); + } + + private static string EvaluateMemberFromObject<T>(T source, string member, string? format, string? fallback) { var safeMember = InputSanitizer.SanitizeMemberName(member); var memberPath = MemberResolver.ResolveMemberPath(source!.GetType(), safeMember); @@ -93,13 +101,29 @@ private static string EvaluateMember<T>(T source, string member, string? format, return fallback ?? string.Empty; if (format is not null && ValueFormatter.Default.TryFormat( - value, - InputSanitizer.SanitizeFormat(format), - out var formatted)) + value, + InputSanitizer.SanitizeFormat(format), + out var formatted)) { return formatted; } return value.ToString() ?? fallback ?? string.Empty; } + + private static string EvaluateMemberFromDictionary(IDictionary<string, object> source, string member, string? format, string? fallback) + { + var safeMember = InputSanitizer.SanitizeMemberName(member); + + if (!source.TryGetValue(safeMember, out var value)) + return fallback ?? string.Empty; + + if (value is null) + return fallback ?? string.Empty; + + if (format is not null && ValueFormatter.Default.TryFormat(value, InputSanitizer.SanitizeFormat(format), out var formatted)) + return formatted; + + return value.ToString() ?? fallback ?? string.Empty; + } } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/EnrichIncrement.cs b/src/GitVersion.Core/VersionCalculation/Mainline/EnrichIncrement.cs index 22d09d92ee..eff180d3b8 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/EnrichIncrement.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/EnrichIncrement.cs @@ -19,7 +19,7 @@ public void Enrich(MainlineIteration iteration, MainlineCommit commit, MainlineC if (commit.Predecessor is not null && commit.Predecessor.BranchName != commit.BranchName) context.Label = null; - context.Label ??= effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label ??= effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); if (effectiveConfiguration.IsMainBranch) context.BaseVersionSource = commit.Predecessor?.Value; diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/EnrichSemanticVersion.cs b/src/GitVersion.Core/VersionCalculation/Mainline/EnrichSemanticVersion.cs index ec0efc946b..094fead4da 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/EnrichSemanticVersion.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/EnrichSemanticVersion.cs @@ -9,9 +9,9 @@ public void Enrich(MainlineIteration iteration, MainlineCommit commit, MainlineC { var branchSpecificLabel = context.TargetLabel; branchSpecificLabel ??= iteration.GetEffectiveConfiguration(context.Configuration) - .GetBranchSpecificLabel(commit.BranchName, null); + .GetBranchSpecificLabel(commit.BranchName, null, context.Environemnt); branchSpecificLabel ??= commit.GetEffectiveConfiguration(context.Configuration) - .GetBranchSpecificLabel(commit.BranchName, null); + .GetBranchSpecificLabel(commit.BranchName, null, context.Environment); var semanticVersions = commit.SemanticVersions.Where( element => element.IsMatchForBranchSpecificLabel(branchSpecificLabel) diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineContext.cs b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineContext.cs index 3657484b37..b7e39dc562 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineContext.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineContext.cs @@ -4,12 +4,14 @@ namespace GitVersion.VersionCalculation.Mainline; -internal record MainlineContext(IIncrementStrategyFinder IncrementStrategyFinder, IGitVersionConfiguration Configuration) +internal record MainlineContext(IIncrementStrategyFinder IncrementStrategyFinder, IGitVersionConfiguration Configuration, IEnvironment Environment) { public IIncrementStrategyFinder IncrementStrategyFinder { get; } = IncrementStrategyFinder.NotNull(); public IGitVersionConfiguration Configuration { get; } = Configuration.NotNull(); + public IEnvironment Environemnt { get; } = Environment.NotNull(); + public string? TargetLabel { get; init; } public SemanticVersion? SemanticVersion { get; set; } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunk.cs b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunk.cs index d50f955a35..e1a8d9020e 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunk.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunk.cs @@ -22,7 +22,7 @@ public IEnumerable<IBaseVersionIncrement> GetIncrements( context.Label = null; var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - context.Label ??= effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label ??= effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); if (commit.Successor is not null) yield break; yield return new BaseVersionOperator diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkBranchedBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkBranchedBase.cs index 371cf513d6..5d7b5aa97a 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkBranchedBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkBranchedBase.cs @@ -21,7 +21,7 @@ public virtual IEnumerable<IBaseVersionIncrement> GetIncrements( context.Increment = context.Increment.Consolidate(incrementForcedByBranch); var iterationEffectiveConfiguration = iteration.GetEffectiveConfiguration(context.Configuration); - context.Label = iterationEffectiveConfiguration.GetBranchSpecificLabel(iteration.BranchName, null) ?? context.Label; + context.Label = iterationEffectiveConfiguration.GetBranchSpecificLabel(iteration.BranchName, null, context.Environment) ?? context.Label; context.ForceIncrement = true; yield return new BaseVersionOperator diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithPreReleaseTagBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithPreReleaseTagBase.cs index 7c1c5c841a..94f6f5a860 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithPreReleaseTagBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithPreReleaseTagBase.cs @@ -24,7 +24,7 @@ public virtual IEnumerable<IBaseVersionIncrement> GetIncrements( context.Increment = commit.GetIncrementForcedByBranch(context.Configuration); var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); context.ForceIncrement = false; } } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithStableTagBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithStableTagBase.cs index 37e3b68a49..8065034493 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithStableTagBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/CommitOnNonTrunkWithStableTagBase.cs @@ -24,6 +24,6 @@ public virtual IEnumerable<IBaseVersionIncrement> GetIncrements( context.Increment = commit.GetIncrementForcedByBranch(context.Configuration); var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); } } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/MergeCommitOnNonTrunkBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/MergeCommitOnNonTrunkBase.cs index ce2c089aae..94ca86304e 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/MergeCommitOnNonTrunkBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/NonTrunk/MergeCommitOnNonTrunkBase.cs @@ -22,7 +22,8 @@ IEnumerable<IBaseVersionIncrement> GetIncrementsInternal() iteration: commit.ChildIteration, targetLabel: context.TargetLabel, incrementStrategyFinder: context.IncrementStrategyFinder, - configuration: context.Configuration + configuration: context.Configuration, + environment: context.Environment ); context.Label ??= baseVersion.Operator?.Label; diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunk.cs b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunk.cs index 152b81577e..7e5f85d1c2 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunk.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunk.cs @@ -21,7 +21,7 @@ public IEnumerable<IBaseVersionIncrement> GetIncrements( context.Label = null; var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - context.Label ??= effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label ??= effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); context.ForceIncrement = true; yield return new BaseVersionOperator diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkBranchedBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkBranchedBase.cs index 2e64ac60bf..887a03d48c 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkBranchedBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkBranchedBase.cs @@ -28,7 +28,7 @@ public virtual IEnumerable<IBaseVersionIncrement> GetIncrements( context.Increment = incrementForcedByBranch; var iterationEffectiveConfiguration = iteration.GetEffectiveConfiguration(context.Configuration); - context.Label = iterationEffectiveConfiguration.GetBranchSpecificLabel(iteration.BranchName, null) ?? context.Label; + context.Label = iterationEffectiveConfiguration.GetBranchSpecificLabel(iteration.BranchName, null, context.Environment) ?? context.Label; context.ForceIncrement = true; yield return new BaseVersionOperator diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkWithStableTagBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkWithStableTagBase.cs index f9ca1a445b..f590cb3a3e 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkWithStableTagBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/CommitOnTrunkWithStableTagBase.cs @@ -22,6 +22,6 @@ public virtual IEnumerable<IBaseVersionIncrement> GetIncrements( }; var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); } } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/LastCommitOnTrunkWithPreReleaseTag.cs b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/LastCommitOnTrunkWithPreReleaseTag.cs index 97316952f6..fc7c263749 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/LastCommitOnTrunkWithPreReleaseTag.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/LastCommitOnTrunkWithPreReleaseTag.cs @@ -22,7 +22,7 @@ public override IEnumerable<IBaseVersionIncrement> GetIncrements( context.Increment = commit.GetIncrementForcedByBranch(context.Configuration); var effectiveConfiguration = commit.GetEffectiveConfiguration(context.Configuration); - context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null); + context.Label = effectiveConfiguration.GetBranchSpecificLabel(commit.BranchName, null, context.Environment); context.ForceIncrement = false; yield return new BaseVersionOperator diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/MergeCommitOnTrunkBase.cs b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/MergeCommitOnTrunkBase.cs index 26170a710c..84c7119052 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/MergeCommitOnTrunkBase.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/Trunk/MergeCommitOnTrunkBase.cs @@ -20,7 +20,8 @@ IEnumerable<IBaseVersionIncrement> GetIncrementsInternal() iteration: commit.ChildIteration!, targetLabel: context.TargetLabel, incrementStrategyFinder: context.IncrementStrategyFinder, - configuration: context.Configuration + configuration: context.Configuration, + environment: context.Environment ); context.Label ??= baseVersion.Operator?.Label; diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs index d43017eda1..67d34935cb 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs @@ -14,13 +14,15 @@ internal class NextVersionCalculator( IEnumerable<IDeploymentModeCalculator> deploymentModeCalculators, IEnumerable<IVersionStrategy> versionStrategies, IEffectiveBranchConfigurationFinder effectiveBranchConfigurationFinder, - ITaggedSemanticVersionService taggedSemanticVersionService) + ITaggedSemanticVersionService taggedSemanticVersionService, + IEnvironment environment) : INextVersionCalculator { private readonly ILog log = log.NotNull(); private readonly Lazy<GitVersionContext> versionContext = versionContext.NotNull(); private readonly IVersionStrategy[] versionStrategies = [.. versionStrategies.NotNull()]; private readonly IEffectiveBranchConfigurationFinder effectiveBranchConfigurationFinder = effectiveBranchConfigurationFinder.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); private GitVersionContext Context => this.versionContext.Value; @@ -108,7 +110,7 @@ private bool TryGetSemanticVersion( { result = null; - var label = effectiveConfiguration.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var label = effectiveConfiguration.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); var currentCommitTaggedVersion = taggedSemanticVersionsOfCurrentCommit .Where(element => element.Value.IsMatchForBranchSpecificLabel(label)).Max(); diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/ConfiguredNextVersionVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/ConfiguredNextVersionVersionStrategy.cs index 275aee185a..eee9b78d8f 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/ConfiguredNextVersionVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/ConfiguredNextVersionVersionStrategy.cs @@ -8,9 +8,10 @@ namespace GitVersion.VersionCalculation; /// BaseVersionSource is null. /// Does not increment. /// </summary> -internal sealed class ConfiguredNextVersionVersionStrategy(Lazy<GitVersionContext> contextLazy) : IVersionStrategy +internal sealed class ConfiguredNextVersionVersionStrategy(Lazy<GitVersionContext> contextLazy, IEnvironment environment) : IVersionStrategy { private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); private GitVersionContext Context => contextLazy.Value; @@ -26,7 +27,7 @@ public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration con var semanticVersion = SemanticVersion.Parse( nextVersion, Context.Configuration.TagPrefixPattern, Context.Configuration.SemanticVersionFormat ); - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, environment); if (!semanticVersion.IsMatchForBranchSpecificLabel(label)) yield break; BaseVersionOperator? operation = null; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs index 31858d5a4d..019852e035 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs @@ -12,12 +12,14 @@ namespace GitVersion.VersionCalculation; internal sealed class FallbackVersionStrategy( Lazy<GitVersionContext> contextLazy, IIncrementStrategyFinder incrementStrategyFinder, - ITaggedSemanticVersionService taggedSemanticVersionService) + ITaggedSemanticVersionService taggedSemanticVersionService, + IEnvironment environment) : IVersionStrategy { private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); private readonly ITaggedSemanticVersionService taggedSemanticVersionService = taggedSemanticVersionService.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); private GitVersionContext Context => contextLazy.Value; @@ -31,7 +33,7 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur if (!Context.Configuration.VersionStrategy.HasFlag(VersionStrategies.Fallback)) yield break; - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); var baseVersionSource = taggedSemanticVersionService.GetTaggedSemanticVersions( branch: Context.CurrentBranch, diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs index 805dfae9f8..0bcf15667e 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs @@ -13,7 +13,8 @@ internal sealed class MainlineVersionStrategy( Lazy<GitVersionContext> contextLazy, IRepositoryStore repositoryStore, ITaggedSemanticVersionService taggedSemanticVersionService, - IIncrementStrategyFinder incrementStrategyFinder) + IIncrementStrategyFinder incrementStrategyFinder, + IEnvironment environment) : IVersionStrategy { private volatile int iterationCounter; @@ -21,6 +22,7 @@ internal sealed class MainlineVersionStrategy( private readonly ITaggedSemanticVersionService taggedSemanticVersionService = taggedSemanticVersionService.NotNull(); private readonly IRepositoryStore repositoryStore = repositoryStore.NotNull(); private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); private readonly Dictionary<string, Dictionary<ICommit, List<(IBranch, IBranchConfiguration)>>> commitsWasBranchedFromCache = new(); private GitVersionContext Context => contextLazy.Value; @@ -102,7 +104,7 @@ public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration con notOlderThan: Context.CurrentCommit.When, taggedSemanticVersion: taggedSemanticVersion ); - var targetLabel = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var targetLabel = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); IterateOverCommitsRecursive( commitsInReverseOrder: commitsInReverseOrder, iteration: iteration, @@ -111,7 +113,7 @@ public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration con taggedSemanticVersions: taggedSemanticVersions ); - yield return DetermineBaseVersion(iteration, targetLabel, incrementStrategyFinder, Context.Configuration); + yield return DetermineBaseVersion(iteration, targetLabel, incrementStrategyFinder, Context.Configuration, this.environment); } private MainlineIteration CreateIteration( @@ -204,7 +206,7 @@ private bool IterateOverCommitsRecursive( var label = targetLabel ?? new EffectiveConfiguration( configuration: Context.Configuration, branchConfiguration: configuration - ).GetBranchSpecificLabel(branchName, null); + ).GetBranchSpecificLabel(branchName, null, this.environment); foreach (var semanticVersion in semanticVersions) { @@ -334,15 +336,15 @@ private bool IterateOverCommitsRecursive( } private static BaseVersion DetermineBaseVersion(MainlineIteration iteration, string? targetLabel, - IIncrementStrategyFinder incrementStrategyFinder, IGitVersionConfiguration configuration) - => DetermineBaseVersionRecursive(iteration, targetLabel, incrementStrategyFinder, configuration); + IIncrementStrategyFinder incrementStrategyFinder, IGitVersionConfiguration configuration, IEnvironment environment) + => DetermineBaseVersionRecursive(iteration, targetLabel, incrementStrategyFinder, configuration, environment); internal static BaseVersion DetermineBaseVersionRecursive(MainlineIteration iteration, string? targetLabel, - IIncrementStrategyFinder incrementStrategyFinder, IGitVersionConfiguration configuration) + IIncrementStrategyFinder incrementStrategyFinder, IGitVersionConfiguration configuration, IEnvironment environment) { iteration.NotNull(); - var incrementSteps = GetIncrements(iteration, targetLabel, incrementStrategyFinder, configuration).ToArray(); + var incrementSteps = GetIncrements(iteration, targetLabel, incrementStrategyFinder, configuration, environment).ToArray(); BaseVersion? result = null; foreach (var baseVersionIncrement in incrementSteps) @@ -365,9 +367,9 @@ internal static BaseVersion DetermineBaseVersionRecursive(MainlineIteration iter } private static IEnumerable<IBaseVersionIncrement> GetIncrements(MainlineIteration iteration, string? targetLabel, - IIncrementStrategyFinder incrementStrategyFinder, IGitVersionConfiguration configuration) + IIncrementStrategyFinder incrementStrategyFinder, IGitVersionConfiguration configuration, IEnvironment environment) { - MainlineContext context = new(incrementStrategyFinder, configuration) + MainlineContext context = new(incrementStrategyFinder, configuration, environment) { TargetLabel = targetLabel }; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs index d8490a734b..ae39de3386 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs @@ -11,13 +11,14 @@ namespace GitVersion.VersionCalculation; /// Increments if PreventIncrementOfMergedBranchVersion (from the branch configuration) is false. /// </summary> internal sealed class MergeMessageVersionStrategy(ILog log, Lazy<GitVersionContext> contextLazy, - IRepositoryStore repositoryStore, IIncrementStrategyFinder incrementStrategyFinder) + IRepositoryStore repositoryStore, IIncrementStrategyFinder incrementStrategyFinder, IEnvironment environment) : IVersionStrategy { private readonly ILog log = log.NotNull(); private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); private readonly IRepositoryStore repositoryStore = repositoryStore.NotNull(); private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); private GitVersionContext Context => contextLazy.Value; @@ -51,7 +52,7 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur baseVersionSource = this.repositoryStore.FindMergeBase(commit.Parents[0], commit.Parents[1]); } - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); var increment = configuration.Value.PreventIncrementOfMergedBranch ? VersionField.None : this.incrementStrategyFinder.DetermineIncrementedField( currentCommit: Context.CurrentCommit, diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs index 4e08eef9c8..1b3445e9d9 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs @@ -14,13 +14,15 @@ internal sealed class TaggedCommitVersionStrategy( ILog log, Lazy<GitVersionContext> contextLazy, ITaggedSemanticVersionService taggedSemanticVersionService, - IIncrementStrategyFinder incrementStrategyFinder) + IIncrementStrategyFinder incrementStrategyFinder, + IEnvironment environment) : IVersionStrategy { private readonly ILog log = log.NotNull(); private readonly ITaggedSemanticVersionService taggedSemanticVersionService = taggedSemanticVersionService.NotNull(); private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); private GitVersionContext Context => contextLazy.Value; @@ -42,7 +44,7 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur taggedSemanticVersion: configuration.Value.GetTaggedSemanticVersion() ).SelectMany(elements => elements).Distinct().ToArray(); - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); var semanticVersionTreshold = SemanticVersion.Empty; List<SemanticVersionWithTag> alternativeSemanticVersionsWithTag = []; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs index 75dc51146e..4250ef2ad2 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs @@ -11,14 +11,16 @@ internal sealed class TrackReleaseBranchesVersionStrategy( Lazy<GitVersionContext> contextLazy, IRepositoryStore repositoryStore, IBranchRepository branchRepository, - IIncrementStrategyFinder incrementStrategyFinder) + IIncrementStrategyFinder incrementStrategyFinder, + IEnvironment environment) : IVersionStrategy { private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); private readonly IRepositoryStore repositoryStore = repositoryStore.NotNull(); private readonly IBranchRepository branchRepository = branchRepository.NotNull(); private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); - private readonly VersionInBranchNameVersionStrategy releaseVersionStrategy = new(contextLazy); + private readonly IEnvironment environment = environment.NotNull(); + private readonly VersionInBranchNameVersionStrategy releaseVersionStrategy = new(contextLazy, environment); private GitVersionContext Context => contextLazy.Value; @@ -48,7 +50,7 @@ private bool TryGetBaseVersion( if (!this.releaseVersionStrategy.TryGetBaseVersion(releaseBranchConfiguration, out var baseVersion)) return result is not null; // Find the commit where the child branch was created. var baseVersionSource = this.repositoryStore.FindMergeBase(releaseBranch, Context.CurrentBranch); - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); var increment = this.incrementStrategyFinder.DetermineIncrementedField( currentCommit: Context.CurrentCommit, baseVersionSource: baseVersionSource, diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionInBranchNameVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionInBranchNameVersionStrategy.cs index 6565f560b3..08886ecb59 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionInBranchNameVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionInBranchNameVersionStrategy.cs @@ -9,9 +9,10 @@ namespace GitVersion.VersionCalculation; /// BaseVersionSource is the commit where the branch was branched from its parent. /// Does not increment. /// </summary> -internal sealed class VersionInBranchNameVersionStrategy(Lazy<GitVersionContext> contextLazy) : IVersionStrategy +internal sealed class VersionInBranchNameVersionStrategy(Lazy<GitVersionContext> contextLazy, IEnvironment environment) : IVersionStrategy { private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); + private readonly IEnvironment environment = environment.NotNull(); private GitVersionContext Context => contextLazy.Value; @@ -43,7 +44,7 @@ public bool TryGetBaseVersion(EffectiveBranchConfiguration configuration, [NotNu branchNameOverride = result.Name; } - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, branchNameOverride); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, branchNameOverride, this.environment); baseVersion = new BaseVersion("Version in branch name", result.Value) { From 91e1cb292fe57aa1a4b9d7043a9ec30e500c0fee Mon Sep 17 00:00:00 2001 From: Robert Coltheart <robert.coltheart@gmail.com> Date: Wed, 20 May 2026 07:56:31 +1000 Subject: [PATCH 326/358] docs: update configuration.source with environment vars for labels --- docs/input/docs/reference/configuration.md | 2 -- docs/input/docs/reference/mdsource/configuration.source.md | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/input/docs/reference/configuration.md b/docs/input/docs/reference/configuration.md index d36090c553..a4955c9804 100644 --- a/docs/input/docs/reference/configuration.md +++ b/docs/input/docs/reference/configuration.md @@ -903,8 +903,6 @@ of `alpha.foo` with `label: 'alpha.{BranchName}'` and `regex: '^features?[\/-](? Another example: branch `features/sc-12345/some-description` would become a pre-release label of `sc-12345` with `label: '{StoryNo}'` and `regex: '^features?[\/-](?<StoryNo>sc-\d+)[-/].+'`. -You can also use environment variable placeholders with the `{env:VARIABLE_NAME}` syntax. Environment variable placeholders can also be combined with regex placeholders, for example `{BranchName}-{env:VARIABLE_NAME}`, and support fallback values using the `{env:VARIABLE_NAME ?? "fallback"}` syntax. - **Note:** To clear a default use an empty string: `label: ''` ### increment diff --git a/docs/input/docs/reference/mdsource/configuration.source.md b/docs/input/docs/reference/mdsource/configuration.source.md index 5c2b43db5a..4d3b387b73 100644 --- a/docs/input/docs/reference/mdsource/configuration.source.md +++ b/docs/input/docs/reference/mdsource/configuration.source.md @@ -504,6 +504,8 @@ of `alpha.foo` with `label: 'alpha.{BranchName}'` and `regex: '^features?[\/-](? Another example: branch `features/sc-12345/some-description` would become a pre-release label of `sc-12345` with `label: '{StoryNo}'` and `regex: '^features?[\/-](?<StoryNo>sc-\d+)[-/].+'`. +You can also use environment variable placeholders with the `{env:VARIABLE_NAME}` syntax. Environment variable placeholders can also be combined with regex placeholders, for example `{BranchName}-{env:VARIABLE_NAME}`, and support fallback values using the `{env:VARIABLE_NAME ?? "fallback"}` syntax. + **Note:** To clear a default use an empty string: `label: ''` ### increment From ebe16d0e8261099d3755b40c593c0af4a0c7c61e Mon Sep 17 00:00:00 2001 From: Robert Coltheart <robert.coltheart@gmail.com> Date: Wed, 20 May 2026 07:57:22 +1000 Subject: [PATCH 327/358] fix: remove unused using --- src/GitVersion.Core/Extensions/ConfigurationExtensions.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs index 065c376034..e6b0606863 100644 --- a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs +++ b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs @@ -1,4 +1,3 @@ -using System.Reflection.Emit; using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Formatting; From 7fd0dc767a400c20345ced213081b19e87ef3957 Mon Sep 17 00:00:00 2001 From: Robert Coltheart <robert.coltheart@gmail.com> Date: Wed, 20 May 2026 08:39:48 +1000 Subject: [PATCH 328/358] fix: remove unnecessary null check --- .../Extensions/ConfigurationExtensions.cs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs index e6b0606863..7704cdaaf5 100644 --- a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs +++ b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs @@ -107,22 +107,20 @@ private static bool ShouldBeIgnored(ICommit commit, IIgnoreConfiguration ignore) environment.NotNull(); var label = configuration.Label; + if (label is null) { return label; } - if (environment is not null) + try { - try - { - label = label.FormatWith(new { }, environment); - } - catch (ArgumentException) - { - // If environment variable is missing an dno fallback, return label as-is - // This maintains backward compatibility - } + label = label.FormatWith(new { }, environment); + } + catch (ArgumentException) + { + // If environment variable is missing an dno fallback, return label as-is + // This maintains backward compatibility } var effectiveBranchName = branchNameOverride ?? branchName; From b5f47b2278350c90ad32025adef490764cdefe66 Mon Sep 17 00:00:00 2001 From: Robert Coltheart <robert.coltheart@gmail.com> Date: Wed, 27 May 2026 07:44:35 +1000 Subject: [PATCH 329/358] fix: remove nuke.build due to failing dns --- docs/input/docs/learn/who.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/input/docs/learn/who.md b/docs/input/docs/learn/who.md index ace607d739..f71da3d125 100644 --- a/docs/input/docs/learn/who.md +++ b/docs/input/docs/learn/who.md @@ -12,7 +12,6 @@ that we know about today. * [ChocolateyGUI](https://github.com/chocolatey/ChocolateyGUI) * [GitLink](https://github.com/GitTools/GitLink) * [OctopusDeploy](https://github.com/OctopusDeploy) -* [NUKE](https://nuke.build) * [Orc.\* packages](https://github.com/wildgums?query=orc) * [Orchestra](https://github.com/wildgums/orchestra) * [Shouldly](https://github.com/shouldly/shouldly) From 1f26fa0e772cb176eba92ac424fb57e6dc56cd47 Mon Sep 17 00:00:00 2001 From: Robert Coltheart <robert.coltheart@gmail.com> Date: Sat, 30 May 2026 21:56:48 +1000 Subject: [PATCH 330/358] fix: throw when env not found for consistency --- .../ConfigurationExtensionsTests.cs | 2 +- .../Extensions/ConfigurationExtensions.cs | 31 +++---------------- 2 files changed, 5 insertions(+), 28 deletions(-) diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs index 4099562fdf..3b1c0d72e5 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs @@ -139,7 +139,7 @@ public void EnsureGetBranchSpecificLabelThrowsWhenThrowIfNotFoundAndEnvVarMissin var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("pull-request")); Should.Throw<ArgumentException>(() => - effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("pull-request"), null, environment, throwIfNotFound: true)); + effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("pull-request"), null, environment)); } [Test] diff --git a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs index 7704cdaaf5..e79fcca522 100644 --- a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs +++ b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs @@ -98,10 +98,10 @@ private static bool ShouldBeIgnored(ICommit commit, IIgnoreConfiguration ignore) extension(EffectiveConfiguration configuration) { - public string? GetBranchSpecificLabel(ReferenceName branchName, string? branchNameOverride, IEnvironment environment, bool throwIfNotFound = false) - => GetBranchSpecificLabel(configuration, branchName.WithoutOrigin, branchNameOverride, environment, throwIfNotFound); + public string? GetBranchSpecificLabel(ReferenceName branchName, string? branchNameOverride, IEnvironment environment) + => GetBranchSpecificLabel(configuration, branchName.WithoutOrigin, branchNameOverride, environment); - public string? GetBranchSpecificLabel(string? branchName, string? branchNameOverride, IEnvironment environment, bool throwIfNotFound = false) + public string? GetBranchSpecificLabel(string? branchName, string? branchNameOverride, IEnvironment environment) { configuration.NotNull(); environment.NotNull(); @@ -113,33 +113,10 @@ private static bool ShouldBeIgnored(ICommit commit, IIgnoreConfiguration ignore) return label; } - try - { - label = label.FormatWith(new { }, environment); - } - catch (ArgumentException) - { - // If environment variable is missing an dno fallback, return label as-is - // This maintains backward compatibility - } - var effectiveBranchName = branchNameOverride ?? branchName; var labelPlaceholders = BuildLabelPlaceholders(configuration.RegularExpression, effectiveBranchName); - if (throwIfNotFound) - { - return label.FormatWith(labelPlaceholders, environment); - } - - try - { - return label.FormatWith(labelPlaceholders, environment); - } - catch (ArgumentException) - { - // If environment variable is missing and no fallback, return label as-is (backward compatibility) - return label; - } + return label.FormatWith(labelPlaceholders, environment); } public TaggedSemanticVersions GetTaggedSemanticVersion() From b762c235bfeb8a2699b42ef633ca1f0c8555bb41 Mon Sep 17 00:00:00 2001 From: Robert Coltheart <robert.coltheart@gmail.com> Date: Mon, 1 Jun 2026 12:49:32 +1000 Subject: [PATCH 331/358] fix: add formatwith overload for dictionary --- .../ConfigurationExtensionsTests.cs | 21 ------- .../Formatting/StringFormatWithExtension.cs | 56 ++++++++++++++----- 2 files changed, 42 insertions(+), 35 deletions(-) diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs index 3b1c0d72e5..6b4435cf4c 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs @@ -141,25 +141,4 @@ public void EnsureGetBranchSpecificLabelThrowsWhenThrowIfNotFoundAndEnvVarMissin Should.Throw<ArgumentException>(() => effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("pull-request"), null, environment)); } - - [Test] - public void EnsureGetBranchSpecificLabelProcessesEnvironmentVariablesEvenWhenRegexDoesNotMatch() - { - var environment = new TestEnvironment(); - environment.SetEnvironmentVariable("GITHUB_HEAD_REF", "feature-branch"); - - var configuration = GitFlowConfigurationBuilder.New - .WithoutBranches() - .WithBranch("pull-request", builder => builder - .WithLabel("pr-{env:GITHUB_HEAD_REF}") - .WithRegularExpression(@"^pull[/-]")) - .WithBranch("feature", builder => builder - .WithLabel("{BranchName}") - .WithRegularExpression(@"^features?[\/-](?<BranchName>.+)")) - .Build(); - - var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("feature/other-branch")); - var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("feature/other-branch"), null, environment); - actual.ShouldBe("other-branch"); - } } diff --git a/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs b/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs index 7d14bdd6cf..341c9096f0 100644 --- a/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs +++ b/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs @@ -37,17 +37,51 @@ internal static class StringFormatWithExtension /// "{env:BUILD_NUMBER}".FormatWith(new { }, env); /// "{env:BUILD_NUMBER ?? \"0\"}".FormatWith(new { }, env); /// </example> - public string FormatWith<T>(T? source, IEnvironment environment) + public string FormatWith(object source, IEnvironment environment) + { + ArgumentNullException.ThrowIfNull(source); + + return template.FormatWith((member, format, fallback) => EvaluateMemberFromObject(source, member, format, fallback), environment); + } + + /// <summary> + /// Formats the <paramref name="template"/>, replacing each expression wrapped in curly braces + /// with the corresponding property from the <paramref name="source"/> or <paramref name="environment"/>. + /// </summary> + /// <param name="source">The source object to apply to the <paramref name="template"/></param> + /// <param name="environment"></param> + /// <exception cref="ArgumentNullException">The <paramref name="template"/> is null.</exception> + /// <exception cref="ArgumentException">An environment variable was null and no fallback was provided.</exception> + /// <remarks> + /// An expression containing "." is treated as a property or field access on the <paramref name="source"/>. + /// An expression starting with "env:" is replaced with the value of the corresponding variable from the <paramref name="environment"/>. + /// Each expression may specify a single hardcoded fallback value using the {Prop ?? "fallback"} syntax, which applies if the expression evaluates to null. + /// </remarks> + /// <example> + /// // replace an expression with a property value + /// "Hello {Name}".FormatWith(new { Name = "Fred" }, env); + /// "Hello {Name ?? \"Fred\"}".FormatWith(new { Name = GetNameOrNull() }, env); + /// // replace an expression with an environment variable + /// "{env:BUILD_NUMBER}".FormatWith(new { }, env); + /// "{env:BUILD_NUMBER ?? \"0\"}".FormatWith(new { }, env); + /// </example> + public string FormatWith(IDictionary<string, object> source, IEnvironment environment) { - ArgumentNullException.ThrowIfNull(template); ArgumentNullException.ThrowIfNull(source); + return template.FormatWith((member, format, fallback) => EvaluateMemberFromDictionary(source, member, format, fallback), environment); + } + + private string FormatWith(EvaluateMemberDelegate memberEvaluator, IEnvironment environment) + { + ArgumentNullException.ThrowIfNull(template); + var result = new StringBuilder(); var lastIndex = 0; foreach (var match in RegexPatterns.ExpandTokensRegex.Matches(template).Cast<Match>()) { - var replacement = EvaluateMatch(match, source, environment); + var replacement = EvaluateMatch(match, memberEvaluator, environment); result.Append(template, lastIndex, match.Index - lastIndex); result.Append(replacement); lastIndex = match.Index + match.Length; @@ -58,7 +92,7 @@ public string FormatWith<T>(T? source, IEnvironment environment) } } - private static string EvaluateMatch<T>(Match match, T source, IEnvironment environment) + private static string EvaluateMatch(Match match, EvaluateMemberDelegate memberEvaluator, IEnvironment environment) { var fallback = match.Groups["fallback"].Success ? match.Groups["fallback"].Value : null; @@ -68,7 +102,7 @@ private static string EvaluateMatch<T>(Match match, T source, IEnvironment envir if (match.Groups["member"].Success) { var format = match.Groups["format"].Success ? match.Groups["format"].Value : null; - return EvaluateMember(source, match.Groups["member"].Value, format, fallback); + return memberEvaluator(match.Groups["member"].Value, format, fallback); } throw new ArgumentException($"Invalid token format: '{match.Value}'"); @@ -82,15 +116,7 @@ private static string EvaluateEnvVar(string name, string? fallback, IEnvironment ?? throw new ArgumentException($"Environment variable {safeName} not found and no fallback provided"); } - private static string EvaluateMember<T>(T source, string member, string? format, string? fallback) - { - if (source is IDictionary<string, object> dictionary) - return EvaluateMemberFromDictionary(dictionary, member, format, fallback); - else - return EvaluateMemberFromObject(source, member, format, fallback); - } - - private static string EvaluateMemberFromObject<T>(T source, string member, string? format, string? fallback) + private static string EvaluateMemberFromObject(object source, string member, string? format, string? fallback) { var safeMember = InputSanitizer.SanitizeMemberName(member); var memberPath = MemberResolver.ResolveMemberPath(source!.GetType(), safeMember); @@ -126,4 +152,6 @@ private static string EvaluateMemberFromDictionary(IDictionary<string, object> s return value.ToString() ?? fallback ?? string.Empty; } + + private delegate string EvaluateMemberDelegate(string member, string? format, string? fallback); } From 8d1e8969f408ec9c032e53d8e65fce28259d83e9 Mon Sep 17 00:00:00 2001 From: Robert Coltheart <robert.coltheart@gmail.com> Date: Wed, 10 Jun 2026 20:32:30 +1000 Subject: [PATCH 332/358] fix: move branch name duplication to const --- .../ConfigurationExtensionsTests.cs | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs index 6b4435cf4c..057e72762f 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs @@ -6,6 +6,8 @@ namespace GitVersion.Configuration.Tests; [TestFixture] public class ConfigurationExtensionsTests : TestBase { + private const string BranchName = "pull-request"; + [TestCase("release/2.0.0", "refs/heads/release/2.0.0", "release/2.0.0", "release/2.0.0", true, false, false, false, true)] @@ -63,13 +65,13 @@ public void EnsureGetBranchSpecificLabelProcessesEnvironmentVariables() var configuration = GitFlowConfigurationBuilder.New .WithoutBranches() - .WithBranch("pull-request", builder => builder + .WithBranch(BranchName, builder => builder .WithLabel("pr-{env:GITHUB_HEAD_REF}") .WithRegularExpression(@"^pull[/-]")) .Build(); - var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("pull-request")); - var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("pull-request"), null, environment); + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName(BranchName)); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName(BranchName), null, environment); actual.ShouldBe("pr-feature-branch"); } @@ -81,13 +83,13 @@ public void EnsureGetBranchSpecificLabelProcessesEnvironmentVariablesWithFallbac var configuration = GitFlowConfigurationBuilder.New .WithoutBranches() - .WithBranch("pull-request", builder => builder + .WithBranch(BranchName, builder => builder .WithLabel("pr-{env:GITHUB_HEAD_REF ?? \"unknown\"}") .WithRegularExpression(@"^pull[/-]")) .Build(); - var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("pull-request")); - var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("pull-request"), null, environment); + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName(BranchName)); + var actual = effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName(BranchName), null, environment); actual.ShouldBe("pr-unknown"); } @@ -132,13 +134,13 @@ public void EnsureGetBranchSpecificLabelThrowsWhenThrowIfNotFoundAndEnvVarMissin var configuration = GitFlowConfigurationBuilder.New .WithoutBranches() - .WithBranch("pull-request", builder => builder + .WithBranch(BranchName, builder => builder .WithLabel("pr-{env:MISSING_VAR}") .WithRegularExpression(@"^pull[/-]")) .Build(); - var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName("pull-request")); + var effectiveConfiguration = configuration.GetEffectiveConfiguration(ReferenceName.FromBranchName(BranchName)); Should.Throw<ArgumentException>(() => - effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName("pull-request"), null, environment)); + effectiveConfiguration.GetBranchSpecificLabel(ReferenceName.FromBranchName(BranchName), null, environment)); } } From 3a254b5e237b4982e6cfbd740b5daa859dfa9963 Mon Sep 17 00:00:00 2001 From: gittools-bot <gittoolsbot@outlook.com> Date: Wed, 10 Jun 2026 20:38:47 +0000 Subject: [PATCH 333/358] include markdown docs changes --- docs/input/docs/reference/configuration.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/input/docs/reference/configuration.md b/docs/input/docs/reference/configuration.md index a4955c9804..d36090c553 100644 --- a/docs/input/docs/reference/configuration.md +++ b/docs/input/docs/reference/configuration.md @@ -903,6 +903,8 @@ of `alpha.foo` with `label: 'alpha.{BranchName}'` and `regex: '^features?[\/-](? Another example: branch `features/sc-12345/some-description` would become a pre-release label of `sc-12345` with `label: '{StoryNo}'` and `regex: '^features?[\/-](?<StoryNo>sc-\d+)[-/].+'`. +You can also use environment variable placeholders with the `{env:VARIABLE_NAME}` syntax. Environment variable placeholders can also be combined with regex placeholders, for example `{BranchName}-{env:VARIABLE_NAME}`, and support fallback values using the `{env:VARIABLE_NAME ?? "fallback"}` syntax. + **Note:** To clear a default use an empty string: `label: ''` ### increment From 08ce9144b7e0a965440c189f14cfcff6018ae5a2 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 10 Jun 2026 16:03:45 +0200 Subject: [PATCH 334/358] build: re-enable global warnings and fix specific violations Remove global suppressions for CS8604, CS8620, and CS0618 from Directory.Build.props. Fix resulting warnings by using pragmas for deprecated members and removing unnecessary casts. --- src/Directory.Build.props | 1 - .../IntegrationTests/DocumentationSamples.cs | 2 ++ src/GitVersion.MsBuild.Tests/AssemblyInfoFileHelperTests.cs | 2 +- src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj | 4 ++++ 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 38404fb512..1e615466c3 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -19,7 +19,6 @@ <RepositoryType>git</RepositoryType> <NoWarn>$(NoWarn);NU1701;1591,8618,SYSLIB10;EnableGenerateDocumentationFile</NoWarn> - <NoWarn>$(NoWarn);CS8604;CS8620;CS0618</NoWarn> <WarningsAsErrors>$(WarningsAsErrors);RS0016;RS0017;RS0022;RS0024;RS0025;RS0026;RS0027</WarningsAsErrors> <DebugType>embedded</DebugType> diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs index 343447f7dc..92f40572c4 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs @@ -381,7 +381,9 @@ public void GitHubFlowMajorRelease() // test that the VersionSourceDistance should still return the commit count var version = fixture.GetVersion(); +#pragma warning disable CS0618 version.CommitsSinceVersionSource.ShouldBe("0"); +#pragma warning restore CS0618 version.VersionSourceDistance.ShouldBe("0"); // Make a commit after a tag should bump up the beta diff --git a/src/GitVersion.MsBuild.Tests/AssemblyInfoFileHelperTests.cs b/src/GitVersion.MsBuild.Tests/AssemblyInfoFileHelperTests.cs index ddb4139b33..c10bebc401 100644 --- a/src/GitVersion.MsBuild.Tests/AssemblyInfoFileHelperTests.cs +++ b/src/GitVersion.MsBuild.Tests/AssemblyInfoFileHelperTests.cs @@ -16,7 +16,7 @@ public void GetFileExtensionShouldReturnCorrectExtension(string language, string } else { - Assert.That((TestDelegate)(() => AssemblyInfoFileHelper.GetFileExtension(language)), Throws.ArgumentException.With.Message.EqualTo($"Unknown language detected: '{language}'")); + Assert.That(() => AssemblyInfoFileHelper.GetFileExtension(language), Throws.ArgumentException.With.Message.EqualTo($"Unknown language detected: '{language}'")); } } diff --git a/src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj b/src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj index df29f04ed4..e0f7f5cef9 100644 --- a/src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj +++ b/src/GitVersion.MsBuild.Tests/GitVersion.MsBuild.Tests.csproj @@ -1,5 +1,9 @@ <Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <NoWarn>$(NoWarn);NU1903</NoWarn> + </PropertyGroup> + <ItemGroup> <PackageReference Include="Buildalyzer" /> <PackageReference Include="LibGit2Sharp" /> From 9bf9b834118c980c66542392fcfc29a700724e24 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 10 Jun 2026 16:22:44 +0200 Subject: [PATCH 335/358] build: enable nullable warnings and resolve violations Uncomment nullable and analyzer warnings in Directory.Build.props. Fix violations by initializing fields, using the 'required' modifier, and applying null-forgiving operators where appropriate. --- src/Directory.Build.props | 5 +- .../ArgumentParserTests.cs | 2 +- src/GitVersion.App/Arguments.cs | 2 +- .../Builders/ConfigurationBuilderBase.cs | 8 +-- src/GitVersion.MsBuild/PublicAPI.Shipped.txt | 2 +- .../Tasks/GenerateGitVersionInformation.cs | 8 +-- src/GitVersion.MsBuild/Tasks/GetVersion.cs | 56 +++++++++---------- .../Tasks/GitVersionTaskBase.cs | 8 +-- .../Tasks/UpdateAssemblyInfo.cs | 6 +- 9 files changed, 49 insertions(+), 48 deletions(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 1e615466c3..42eb5200d1 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -18,8 +18,8 @@ <RepositoryUrl>https://github.com/GitTools/GitVersion</RepositoryUrl> <RepositoryType>git</RepositoryType> - <NoWarn>$(NoWarn);NU1701;1591,8618,SYSLIB10;EnableGenerateDocumentationFile</NoWarn> - <WarningsAsErrors>$(WarningsAsErrors);RS0016;RS0017;RS0022;RS0024;RS0025;RS0026;RS0027</WarningsAsErrors> + <NoWarn>$(NoWarn);NU1701;CS1591;EnableGenerateDocumentationFile</NoWarn> +<!-- <WarningsAsErrors>$(WarningsAsErrors);RS0016;RS0017;RS0022;RS0024;RS0025;RS0026;RS0027</WarningsAsErrors>--> <DebugType>embedded</DebugType> <LangVersion>latest</LangVersion> @@ -45,6 +45,7 @@ <OutputType>Exe</OutputType> <IsPackable>false</IsPackable> + <NoWarn>$(NoWarn);CS8618</NoWarn> <EnableNUnitRunner>true</EnableNUnitRunner> <EnableMicrosoftTestingPlatformRunner>true</EnableMicrosoftTestingPlatformRunner> diff --git a/src/GitVersion.App.Tests/ArgumentParserTests.cs b/src/GitVersion.App.Tests/ArgumentParserTests.cs index 3f26dce25d..fe2d2b1e09 100644 --- a/src/GitVersion.App.Tests/ArgumentParserTests.cs +++ b/src/GitVersion.App.Tests/ArgumentParserTests.cs @@ -370,7 +370,7 @@ public void UpdateAssemblyInfoWithRelativeFilename() public void OverrideconfigWithNoOptions() { var arguments = this.argumentParser.ParseArguments("/overrideconfig"); - arguments.OverrideConfiguration.ShouldBeNull(); + arguments.OverrideConfiguration.ShouldBeEmpty(); } [TestCaseSource(nameof(OverrideconfigWithInvalidOptionTestData))] diff --git a/src/GitVersion.App/Arguments.cs b/src/GitVersion.App/Arguments.cs index 8c5ea2f74c..cd357cb803 100644 --- a/src/GitVersion.App/Arguments.cs +++ b/src/GitVersion.App/Arguments.cs @@ -8,7 +8,7 @@ internal class Arguments public AuthenticationInfo Authentication = new(); public string? ConfigurationFile; - public IReadOnlyDictionary<object, object?> OverrideConfiguration; + public IReadOnlyDictionary<object, object?> OverrideConfiguration = new Dictionary<object, object?>(); public bool ShowConfiguration; public string? TargetPath; diff --git a/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs b/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs index 95785bc048..785adf220d 100644 --- a/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs +++ b/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs @@ -21,11 +21,11 @@ internal abstract class ConfigurationBuilderBase<TConfigurationBuilder> : IConfi private string? patchVersionBumpMessage; private string? noBumpMessage; private int? tagPreReleaseWeight; - private IgnoreConfiguration ignore; + private IgnoreConfiguration ignore = new(); private string? commitDateFormat; private bool updateBuildNumber; private SemanticVersionFormat semanticVersionFormat; - private VersionStrategies[] versionStrategies; + private VersionStrategies[] versionStrategies = []; private Dictionary<string, string> mergeMessageFormats = []; private readonly List<IReadOnlyDictionary<object, object?>> overrides = []; private readonly Dictionary<string, BranchConfigurationBuilder> branchConfigurationBuilders = []; @@ -479,8 +479,8 @@ private static void ValidateConfiguration(IGitVersionConfiguration configuration protected record BranchMetaData { - public string Name { get; init; } + public required string Name { get; init; } - public string RegexPattern { get; init; } + public required string RegexPattern { get; init; } } } diff --git a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt index 57d5952758..b329f671c2 100644 --- a/src/GitVersion.MsBuild/PublicAPI.Shipped.txt +++ b/src/GitVersion.MsBuild/PublicAPI.Shipped.txt @@ -6,7 +6,7 @@ GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.GitVersionInformationFile GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.IntermediateOutputPath.get -> string! GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.Language.get -> string! GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.ProjectFile.get -> string! -GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.RootNamespace.get -> string! +GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.RootNamespace.get -> string? GitVersion.MsBuild.Tasks.GenerateGitVersionInformation.UseProjectNamespaceForGitVersionInformation.get -> string? GitVersion.MsBuild.Tasks.GetVersion GitVersion.MsBuild.Tasks.GetVersion.AssemblySemFileVer.get -> string! diff --git a/src/GitVersion.MsBuild/Tasks/GenerateGitVersionInformation.cs b/src/GitVersion.MsBuild/Tasks/GenerateGitVersionInformation.cs index 93b4f5da23..cac0668129 100644 --- a/src/GitVersion.MsBuild/Tasks/GenerateGitVersionInformation.cs +++ b/src/GitVersion.MsBuild/Tasks/GenerateGitVersionInformation.cs @@ -5,18 +5,18 @@ namespace GitVersion.MsBuild.Tasks; public class GenerateGitVersionInformation : GitVersionTaskBase { [Required] - public string ProjectFile { get; internal init; } + public string ProjectFile { get; internal init; } = null!; [Required] - public string IntermediateOutputPath { get; internal init; } + public string IntermediateOutputPath { get; internal init; } = null!; [Required] public string Language { get; internal init; } = "C#"; public string? UseProjectNamespaceForGitVersionInformation { get; internal init; } - public string RootNamespace { get; internal init; } + public string? RootNamespace { get; internal init; } [Output] - public string GitVersionInformationFilePath { get; set; } + public string GitVersionInformationFilePath { get; set; } = null!; } diff --git a/src/GitVersion.MsBuild/Tasks/GetVersion.cs b/src/GitVersion.MsBuild/Tasks/GetVersion.cs index 24e60ea19f..89c2351fa4 100644 --- a/src/GitVersion.MsBuild/Tasks/GetVersion.cs +++ b/src/GitVersion.MsBuild/Tasks/GetVersion.cs @@ -5,87 +5,87 @@ namespace GitVersion.MsBuild.Tasks; public class GetVersion : GitVersionTaskBase { [Output] - public string AssemblySemFileVer { get; set; } + public string AssemblySemFileVer { get; set; } = null!; [Output] - public string AssemblySemVer { get; set; } + public string AssemblySemVer { get; set; } = null!; [Output] - public string BranchName { get; set; } + public string BranchName { get; set; } = null!; [Output] - public string BuildMetaData { get; set; } + public string BuildMetaData { get; set; } = null!; [Output] - public string CommitDate { get; set; } + public string CommitDate { get; set; } = null!; [Output] [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] - public string CommitsSinceVersionSource { get; set; } + public string CommitsSinceVersionSource { get; set; } = null!; [Output] - public string EscapedBranchName { get; set; } + public string EscapedBranchName { get; set; } = null!; [Output] - public string FullBuildMetaData { get; set; } + public string FullBuildMetaData { get; set; } = null!; [Output] - public string FullSemVer { get; set; } + public string FullSemVer { get; set; } = null!; [Output] - public string InformationalVersion { get; set; } + public string InformationalVersion { get; set; } = null!; [Output] - public string Major { get; set; } + public string Major { get; set; } = null!; [Output] - public string MajorMinorPatch { get; set; } + public string MajorMinorPatch { get; set; } = null!; [Output] - public string Minor { get; set; } + public string Minor { get; set; } = null!; [Output] - public string Patch { get; set; } + public string Patch { get; set; } = null!; [Output] - public string PreReleaseLabel { get; set; } + public string PreReleaseLabel { get; set; } = null!; [Output] - public string PreReleaseLabelWithDash { get; set; } + public string PreReleaseLabelWithDash { get; set; } = null!; [Output] - public string PreReleaseNumber { get; set; } + public string PreReleaseNumber { get; set; } = null!; [Output] - public string PreReleaseTag { get; set; } + public string PreReleaseTag { get; set; } = null!; [Output] - public string PreReleaseTagWithDash { get; set; } + public string PreReleaseTagWithDash { get; set; } = null!; [Output] - public string SemVer { get; set; } + public string SemVer { get; set; } = null!; [Output] - public string Sha { get; set; } + public string Sha { get; set; } = null!; [Output] - public string ShortSha { get; set; } + public string ShortSha { get; set; } = null!; [Output] - public string UncommittedChanges { get; set; } + public string UncommittedChanges { get; set; } = null!; [Output] - public string VersionSourceDistance { get; set; } + public string VersionSourceDistance { get; set; } = null!; [Output] - public string VersionSourceIncrement { get; set; } + public string VersionSourceIncrement { get; set; } = null!; [Output] - public string VersionSourceSemVer { get; set; } + public string VersionSourceSemVer { get; set; } = null!; [Output] - public string VersionSourceSha { get; set; } + public string VersionSourceSha { get; set; } = null!; [Output] - public string WeightedPreReleaseNumber { get; set; } + public string WeightedPreReleaseNumber { get; set; } = null!; } diff --git a/src/GitVersion.MsBuild/Tasks/GitVersionTaskBase.cs b/src/GitVersion.MsBuild/Tasks/GitVersionTaskBase.cs index 8c8dbbacf4..8c2d37fe3f 100644 --- a/src/GitVersion.MsBuild/Tasks/GitVersionTaskBase.cs +++ b/src/GitVersion.MsBuild/Tasks/GitVersionTaskBase.cs @@ -5,15 +5,15 @@ namespace GitVersion.MsBuild.Tasks; public abstract class GitVersionTaskBase : ITask { - public IBuildEngine BuildEngine { get; set; } - public ITaskHost HostObject { get; set; } + public IBuildEngine BuildEngine { get; set; } = null!; + public ITaskHost HostObject { get; set; } = null!; protected GitVersionTaskBase() => Log = new(this); [Required] - public string SolutionDirectory { get; set; } + public string SolutionDirectory { get; set; } = null!; - public string VersionFile { get; set; } + public string VersionFile { get; set; } = null!; public TaskLoggingHelper Log { get; } diff --git a/src/GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs b/src/GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs index f95a5c1803..121cade54f 100644 --- a/src/GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs +++ b/src/GitVersion.MsBuild/Tasks/UpdateAssemblyInfo.cs @@ -5,10 +5,10 @@ namespace GitVersion.MsBuild.Tasks; public class UpdateAssemblyInfo : GitVersionTaskBase { [Required] - public string ProjectFile { get; internal init; } + public string ProjectFile { get; internal init; } = null!; [Required] - public string IntermediateOutputPath { get; internal init; } + public string IntermediateOutputPath { get; internal init; } = null!; [Required] public ITaskItem[] CompileFiles { get; internal init; } = []; @@ -17,5 +17,5 @@ public class UpdateAssemblyInfo : GitVersionTaskBase public string Language { get; internal init; } = "C#"; [Output] - public string AssemblyInfoTempFilePath { get; set; } + public string AssemblyInfoTempFilePath { get; set; } = null!; } From d81b81599a18213bfd011d03fba0ce83555e18e6 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 10 Jun 2026 17:39:38 +0200 Subject: [PATCH 336/358] docs: add XML documentation comments to GitVersion.Core public API Adds /// <summary> comments to all 1,468 public types and members in GitVersion.Core that were missing XML docs, eliminating all CS1591 warnings. Also removes the stale commented-out NoWarn entry from Directory.Build.props. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --- src/Directory.Build.props | 3 +- src/GitVersion.Core/Agents/IBuildAgent.cs | 13 ++++++ .../AssemblyFileVersioningScheme.cs | 10 +++++ .../Configuration/AssemblyVersioningScheme.cs | 10 +++++ .../EffectiveBranchConfiguration.cs | 3 ++ .../Configuration/EffectiveConfiguration.cs | 41 +++++++++++++++++++ .../Configuration/IBranchConfiguration.cs | 18 ++++++++ .../Configuration/IConfigurationBuilder.cs | 3 ++ .../IConfigurationFileLocator.cs | 4 ++ .../Configuration/IConfigurationProvider.cs | 2 + .../Configuration/IGitVersionConfiguration.cs | 23 +++++++++++ .../Configuration/IIgnoreConfiguration.cs | 5 +++ .../IPreventIncrementConfiguration.cs | 4 ++ .../Core/Abstractions/IEnvironment.cs | 4 ++ .../Core/Abstractions/IGitPreparer.cs | 4 ++ .../Abstractions/IGitVersionCalculateTool.cs | 2 + .../Abstractions/IGitVersionContextFactory.cs | 2 + .../Core/Abstractions/IGitVersionModule.cs | 3 ++ .../Core/Abstractions/IRepositoryStore.cs | 27 ++++++++++++ .../Core/Exceptions/BugException.cs | 4 ++ .../Core/Exceptions/GitVersionException.cs | 5 +++ .../Core/Exceptions/LockedFileException.cs | 5 +++ .../Core/Exceptions/WarningException.cs | 4 ++ .../AssemblyVersionsGeneratorExtensions.cs | 3 ++ .../Extensions/CommonExtensions.cs | 4 ++ .../Extensions/EnumerableExtensions.cs | 4 ++ .../Extensions/FileSystemExtensions.cs | 3 ++ .../Extensions/GitExtensions.cs | 3 ++ .../Extensions/IncrementStrategyExtensions.cs | 2 + .../ReadEmbeddedResourceExtensions.cs | 3 ++ .../Extensions/ReferenceNameExtensions.cs | 3 ++ .../Extensions/ServiceCollectionExtensions.cs | 3 ++ .../Extensions/StringExtensions.cs | 6 +++ src/GitVersion.Core/Git/AuthenticationInfo.cs | 6 +++ src/GitVersion.Core/Git/BranchCommit.cs | 9 ++++ src/GitVersion.Core/Git/CommitFilter.cs | 9 ++++ src/GitVersion.Core/Git/IBranch.cs | 10 +++++ src/GitVersion.Core/Git/IBranchCollection.cs | 6 +++ src/GitVersion.Core/Git/ICommit.cs | 8 ++++ src/GitVersion.Core/Git/ICommitCollection.cs | 4 ++ src/GitVersion.Core/Git/IGitRepository.cs | 23 +++++++++++ src/GitVersion.Core/Git/IGitRepositoryInfo.cs | 8 ++++ .../Git/IMutatingGitRepository.cs | 8 ++++ src/GitVersion.Core/Git/INamedReference.cs | 2 + src/GitVersion.Core/Git/IObjectId.cs | 4 ++ src/GitVersion.Core/Git/IRefSpec.cs | 8 ++++ src/GitVersion.Core/Git/IRefSpecCollection.cs | 1 + src/GitVersion.Core/Git/IReference.cs | 4 ++ .../Git/IReferenceCollection.cs | 12 ++++++ src/GitVersion.Core/Git/IRemote.cs | 7 ++++ src/GitVersion.Core/Git/IRemoteCollection.cs | 6 +++ src/GitVersion.Core/Git/ITag.cs | 3 ++ src/GitVersion.Core/Git/ITagCollection.cs | 1 + src/GitVersion.Core/Git/ITreeChanges.cs | 2 + src/GitVersion.Core/Git/RefSpecDirection.cs | 4 ++ src/GitVersion.Core/Git/ReferenceName.cs | 22 ++++++++++ src/GitVersion.Core/GitVersionCommonModule.cs | 2 + src/GitVersion.Core/GitVersionContext.cs | 5 +++ src/GitVersion.Core/GitVersionCoreModule.cs | 2 + src/GitVersion.Core/Helpers/Disposable.cs | 7 ++++ .../Helpers/LambdaEqualityHelper.cs | 4 ++ .../Helpers/LambdaKeyComparer.cs | 2 + src/GitVersion.Core/Helpers/RetryAction.cs | 6 +++ .../Helpers/ServiceMessageEscapeHelper.cs | 2 + .../Logging/Abstractions/IConsole.cs | 8 ++++ .../Logging/Abstractions/ILog.cs | 10 +++++ .../Logging/Abstractions/ILogAppender.cs | 2 + src/GitVersion.Core/Logging/LogAction.cs | 2 + src/GitVersion.Core/Logging/LogExtensions.cs | 26 ++++++++++++ src/GitVersion.Core/Logging/LogLevel.cs | 12 ++++++ src/GitVersion.Core/MergeMessage.cs | 13 ++++++ .../Options/AssemblySettingsInfo.cs | 8 ++++ .../Options/ConfigurationInfo.cs | 6 +++ src/GitVersion.Core/Options/FileWriteInfo.cs | 1 + .../Options/GitVersionOptions.cs | 29 +++++++++++++ src/GitVersion.Core/Options/OutputType.cs | 8 ++++ src/GitVersion.Core/Options/RepositoryInfo.cs | 8 ++++ src/GitVersion.Core/Options/Settings.cs | 10 +++++ src/GitVersion.Core/Options/WixInfo.cs | 2 + .../Output/IConverterContext.cs | 1 + .../Output/IVersionConverter.cs | 2 + .../OutputVariables/GitVersionVariables.cs | 3 ++ .../IVersionVariableSerializer.cs | 6 +++ src/GitVersion.Core/SemVer/SemanticVersion.cs | 41 +++++++++++++++++++ .../SemVer/SemanticVersionBuildMetaData.cs | 27 ++++++++++++ .../SemVer/SemanticVersionFormat.cs | 4 ++ .../SemVer/SemanticVersionPreReleaseTag.cs | 25 +++++++++++ src/GitVersion.Core/SemVer/VersionField.cs | 8 ++++ .../Abstractions/IDeploymentModeCalculator.cs | 2 + .../IEffectiveBranchConfigurationFinder.cs | 2 + .../Abstractions/IIncrementStrategyFinder.cs | 4 ++ .../Abstractions/INextVersionCalculator.cs | 2 + .../Abstractions/IVariableProvider.cs | 2 + .../Abstractions/IVersionFilter.cs | 4 ++ .../Abstractions/IVersionStrategy.cs | 2 + .../Caching/IGitVersionCacheKeyFactory.cs | 2 + .../Caching/IGitVersionCacheProvider.cs | 4 ++ .../CommitMessageIncrementMode.cs | 6 +++ .../VersionCalculation/DeploymentMode.cs | 6 +++ .../VersionCalculation/IncrementStrategy.cs | 10 +++++ .../VersionCalculation/NextVersion.cs | 16 ++++++++ .../SemanticVersionFormatValues.cs | 29 +++++++++++++ .../SemanticVersionWithTag.cs | 3 ++ .../VersionCalculationModule.cs | 2 + .../VersionSearchStrategies/BaseVersion.cs | 12 ++++++ .../BaseVersionOperand.cs | 5 +++ .../BaseVersionOperator.cs | 8 ++++ .../VersionSearchStrategies/IBaseVersion.cs | 3 ++ .../IBaseVersionIncrement.cs | 3 ++ .../VersionStrategyModule.cs | 2 + .../VersionCalculation/VersionStrategies.cs | 16 ++++++++ 111 files changed, 835 insertions(+), 2 deletions(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 42eb5200d1..b2b4524696 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -18,8 +18,7 @@ <RepositoryUrl>https://github.com/GitTools/GitVersion</RepositoryUrl> <RepositoryType>git</RepositoryType> - <NoWarn>$(NoWarn);NU1701;CS1591;EnableGenerateDocumentationFile</NoWarn> -<!-- <WarningsAsErrors>$(WarningsAsErrors);RS0016;RS0017;RS0022;RS0024;RS0025;RS0026;RS0027</WarningsAsErrors>--> + <NoWarn>$(NoWarn);NU1701;EnableGenerateDocumentationFile</NoWarn> <DebugType>embedded</DebugType> <LangVersion>latest</LangVersion> diff --git a/src/GitVersion.Core/Agents/IBuildAgent.cs b/src/GitVersion.Core/Agents/IBuildAgent.cs index b6f7b36725..caf301dfa1 100644 --- a/src/GitVersion.Core/Agents/IBuildAgent.cs +++ b/src/GitVersion.Core/Agents/IBuildAgent.cs @@ -2,16 +2,29 @@ namespace GitVersion.Agents; +/// <summary> +/// Represents a CI/CD build agent integration that GitVersion can write version information to. +/// </summary> public interface IBuildAgent { + /// <summary>Gets a value indicating whether this agent is the default fallback when no specific agent is detected.</summary> bool IsDefault { get; } + /// <summary>Determines whether this build agent is active in the current execution context.</summary> bool CanApplyToCurrentContext(); + + /// <summary>Returns the name of the current branch as reported by the build agent environment.</summary> string? GetCurrentBranch(bool usingDynamicRepos); + + /// <summary>Indicates whether fetching from the remote should be suppressed in this build agent environment.</summary> bool PreventFetch(); + + /// <summary>Indicates whether remote tracking branches should be cleaned up after fetching.</summary> bool ShouldCleanUpRemotes(); + /// <summary>Writes the computed version variables to the build agent's integration output (e.g. environment variables or build properties).</summary> void WriteIntegration(Action<string?> writer, GitVersionVariables variables, bool updateBuildNumber = true); } +/// <summary>Marker interface for the build agent that is active in the current execution context.</summary> public interface ICurrentBuildAgent : IBuildAgent; diff --git a/src/GitVersion.Core/Configuration/AssemblyFileVersioningScheme.cs b/src/GitVersion.Core/Configuration/AssemblyFileVersioningScheme.cs index 1593116fba..e187e734d5 100644 --- a/src/GitVersion.Core/Configuration/AssemblyFileVersioningScheme.cs +++ b/src/GitVersion.Core/Configuration/AssemblyFileVersioningScheme.cs @@ -1,10 +1,20 @@ namespace GitVersion.Configuration; +/// <summary>Determines which version components are included in the assembly file version (<c>AssemblyFileVersionAttribute</c>).</summary> public enum AssemblyFileVersioningScheme { + /// <summary>Uses Major.Minor.Patch.PreReleaseNumber as the assembly file version.</summary> MajorMinorPatchTag, + + /// <summary>Uses Major.Minor.Patch.0 as the assembly file version.</summary> MajorMinorPatch, + + /// <summary>Uses Major.Minor.0.0 as the assembly file version.</summary> MajorMinor, + + /// <summary>Uses Major.0.0.0 as the assembly file version.</summary> Major, + + /// <summary>Does not set the assembly file version.</summary> None } diff --git a/src/GitVersion.Core/Configuration/AssemblyVersioningScheme.cs b/src/GitVersion.Core/Configuration/AssemblyVersioningScheme.cs index 596decd681..839af73813 100644 --- a/src/GitVersion.Core/Configuration/AssemblyVersioningScheme.cs +++ b/src/GitVersion.Core/Configuration/AssemblyVersioningScheme.cs @@ -1,10 +1,20 @@ namespace GitVersion.Configuration; +/// <summary>Determines which version components are included in the assembly version (<c>AssemblyVersionAttribute</c>).</summary> public enum AssemblyVersioningScheme { + /// <summary>Uses Major.Minor.Patch.PreReleaseNumber as the assembly version.</summary> MajorMinorPatchTag, + + /// <summary>Uses Major.Minor.Patch.0 as the assembly version.</summary> MajorMinorPatch, + + /// <summary>Uses Major.Minor.0.0 as the assembly version.</summary> MajorMinor, + + /// <summary>Uses Major.0.0.0 as the assembly version.</summary> Major, + + /// <summary>Does not set the assembly version.</summary> None } diff --git a/src/GitVersion.Core/Configuration/EffectiveBranchConfiguration.cs b/src/GitVersion.Core/Configuration/EffectiveBranchConfiguration.cs index 1ad5c523b1..542e493927 100644 --- a/src/GitVersion.Core/Configuration/EffectiveBranchConfiguration.cs +++ b/src/GitVersion.Core/Configuration/EffectiveBranchConfiguration.cs @@ -3,9 +3,12 @@ namespace GitVersion.Configuration; +/// <summary>Associates an <see cref="EffectiveConfiguration"/> with the branch it was resolved for.</summary> public record EffectiveBranchConfiguration(EffectiveConfiguration Value, IBranch Branch) { + /// <summary>Gets the branch this configuration applies to.</summary> public IBranch Branch { get; } = Branch.NotNull(); + /// <summary>Gets the resolved effective configuration for this branch.</summary> public EffectiveConfiguration Value { get; } = Value.NotNull(); } diff --git a/src/GitVersion.Core/Configuration/EffectiveConfiguration.cs b/src/GitVersion.Core/Configuration/EffectiveConfiguration.cs index 7bef5cb1d8..4d0344a171 100644 --- a/src/GitVersion.Core/Configuration/EffectiveConfiguration.cs +++ b/src/GitVersion.Core/Configuration/EffectiveConfiguration.cs @@ -10,6 +10,7 @@ namespace GitVersion.Configuration; /// </summary> public record EffectiveConfiguration { + /// <summary>Initializes a new <see cref="EffectiveConfiguration"/> by merging global and branch-level configuration values.</summary> public EffectiveConfiguration( IGitVersionConfiguration configuration, IBranchConfiguration branchConfiguration, @@ -80,60 +81,100 @@ public EffectiveConfiguration( TagPreReleaseWeight = configuration.TagPreReleaseWeight.Value; } + /// <summary>Gets a value indicating whether this branch tracks release branches.</summary> public bool TracksReleaseBranches { get; } + + /// <summary>Gets a value indicating whether this branch is a release branch.</summary> public bool IsReleaseBranch { get; } + + /// <summary>Gets a value indicating whether this branch is a main/trunk branch.</summary> public bool IsMainBranch { get; } + + /// <summary>Gets the deployment mode used to calculate the next version.</summary> public DeploymentMode DeploymentMode { get; } + + /// <summary>Gets the scheme used to compute the <c>AssemblyVersionAttribute</c> value.</summary> public AssemblyVersioningScheme AssemblyVersioningScheme { get; } + + /// <summary>Gets the scheme used to compute the <c>AssemblyFileVersionAttribute</c> value.</summary> public AssemblyFileVersioningScheme AssemblyFileVersioningScheme { get; } + + /// <summary>Gets the format string used to compute the <c>AssemblyInformationalVersionAttribute</c> value.</summary> public string? AssemblyInformationalFormat { get; } + + /// <summary>Gets the format string used to compute the assembly version.</summary> public string? AssemblyVersioningFormat { get; } + + /// <summary>Gets the format string used to compute the assembly file version.</summary> public string? AssemblyFileVersioningFormat { get; } + /// <summary>Gets the regex pattern that identifies tag prefixes to strip when parsing version tags.</summary> public string? TagPrefixPattern { get; } + /// <summary>Gets the regex pattern used to extract a semantic version from a branch name.</summary> public string? VersionInBranchPattern { get; } + /// <summary>Gets the pre-release label applied to versions on this branch.</summary> public string? Label { get; } + /// <summary>Gets the manually configured next version, overriding automatic calculation.</summary> public string? NextVersion { get; } + /// <summary>Gets the version field incremented when creating a new release from this branch.</summary> public IncrementStrategy Increment { get; } + /// <summary>Gets the regular expression that matches branch names eligible for this configuration.</summary> [StringSyntax(StringSyntaxAttribute.Regex)] public string? RegularExpression { get; } + /// <summary>Gets a value indicating whether incrementing the version of a merged branch is prevented.</summary> public bool PreventIncrementOfMergedBranch { get; } + /// <summary>Gets a value indicating whether incrementing when the branch itself is merged is prevented.</summary> public bool PreventIncrementWhenBranchMerged { get; } + /// <summary>Gets a value indicating whether incrementing is prevented when the current commit is already tagged.</summary> public bool PreventIncrementWhenCurrentCommitTagged { get; } + /// <summary>Gets a value indicating whether to track the merge target branch for version calculation.</summary> public bool TrackMergeTarget { get; } + /// <summary>Gets a value indicating whether merge commit messages are used to determine version increments.</summary> public bool TrackMergeMessage { get; } + /// <summary>Gets the commit message pattern that triggers a major version bump.</summary> public string? MajorVersionBumpMessage { get; } + /// <summary>Gets the commit message pattern that triggers a minor version bump.</summary> public string? MinorVersionBumpMessage { get; } + /// <summary>Gets the commit message pattern that triggers a patch version bump.</summary> public string? PatchVersionBumpMessage { get; } + /// <summary>Gets the commit message pattern that suppresses any version bump.</summary> public string? NoBumpMessage { get; } + /// <summary>Gets the mode that controls how commit messages are used to determine version increments.</summary> public CommitMessageIncrementMode CommitMessageIncrementing { get; } + /// <summary>Gets the configuration that controls which commits and time ranges are ignored during version calculation.</summary> public IIgnoreConfiguration Ignore { get; } + /// <summary>Gets the format string used when rendering the commit date in version output.</summary> public string? CommitDateFormat { get; } + /// <summary>Gets a value indicating whether the build number in the CI system should be updated.</summary> public bool UpdateBuildNumber { get; } + /// <summary>Gets the semantic version format (strict or loose) used when parsing version strings.</summary> public SemanticVersionFormat SemanticVersionFormat { get; } + /// <summary>Gets the set of version strategies enabled for this configuration.</summary> public VersionStrategies VersionStrategy { get; } + /// <summary>Gets the numeric weight applied to the pre-release tag number to produce a weighted pre-release number.</summary> public int PreReleaseWeight { get; } + /// <summary>Gets the pre-release weight applied to tagged commits when calculating the weighted pre-release number.</summary> public int TagPreReleaseWeight { get; } } diff --git a/src/GitVersion.Core/Configuration/IBranchConfiguration.cs b/src/GitVersion.Core/Configuration/IBranchConfiguration.cs index f3e6730ac2..11957c1900 100644 --- a/src/GitVersion.Core/Configuration/IBranchConfiguration.cs +++ b/src/GitVersion.Core/Configuration/IBranchConfiguration.cs @@ -4,25 +4,35 @@ namespace GitVersion.Configuration; +/// <summary>Represents the version-related configuration for a specific branch or branch pattern.</summary> public interface IBranchConfiguration { + /// <summary>Gets the deployment mode used to compute versions on this branch.</summary> DeploymentMode? DeploymentMode { get; } + /// <summary>Gets the pre-release label applied to versions produced on this branch.</summary> string? Label { get; } + /// <summary>Gets the version field that is incremented when creating a new release from this branch.</summary> IncrementStrategy Increment { get; } + /// <summary>Gets the configuration that controls under what conditions automatic version increments are suppressed.</summary> IPreventIncrementConfiguration PreventIncrement { get; } + /// <summary>Gets a value indicating whether to track the merge target branch for version calculation.</summary> bool? TrackMergeTarget { get; } + /// <summary>Gets a value indicating whether merge commit messages are considered when determining version increments.</summary> bool? TrackMergeMessage { get; } + /// <summary>Gets the mode that controls how commit messages drive version increments.</summary> CommitMessageIncrementMode? CommitMessageIncrementing { get; } + /// <summary>Gets the regular expression that matches branch names eligible for this configuration.</summary> [StringSyntax(StringSyntaxAttribute.Regex)] string? RegularExpression { get; } + /// <summary>Returns whether the given branch name matches the <see cref="RegularExpression"/> for this configuration.</summary> bool IsMatch(string branchName) { if (string.IsNullOrWhiteSpace(RegularExpression)) @@ -34,19 +44,27 @@ bool IsMatch(string branchName) return regex.IsMatch(branchName); } + /// <summary>Gets the names of branches that this branch may be branched from.</summary> IReadOnlyCollection<string> SourceBranches { get; } + /// <summary>Gets the names of branches for which this branch may act as a source.</summary> IReadOnlyCollection<string> IsSourceBranchFor { get; } + /// <summary>Gets a value indicating whether this branch tracks release branches.</summary> bool? TracksReleaseBranches { get; } + /// <summary>Gets a value indicating whether this branch is a release branch.</summary> bool? IsReleaseBranch { get; } + /// <summary>Gets a value indicating whether this branch is treated as a main/trunk branch.</summary> bool? IsMainBranch { get; } + /// <summary>Gets the numeric weight applied to the pre-release tag number to produce a weighted pre-release number.</summary> int? PreReleaseWeight { get; } + /// <summary>Returns a new configuration that inherits unset values from <paramref name="configuration"/>.</summary> IBranchConfiguration Inherit(IBranchConfiguration configuration); + /// <summary>Returns a new configuration that inherits unset values from the given effective configuration.</summary> IBranchConfiguration Inherit(EffectiveConfiguration configuration); } diff --git a/src/GitVersion.Core/Configuration/IConfigurationBuilder.cs b/src/GitVersion.Core/Configuration/IConfigurationBuilder.cs index e6827f7a0a..f341b0c87b 100644 --- a/src/GitVersion.Core/Configuration/IConfigurationBuilder.cs +++ b/src/GitVersion.Core/Configuration/IConfigurationBuilder.cs @@ -1,8 +1,11 @@ namespace GitVersion.Configuration; +/// <summary>Builds an <see cref="IGitVersionConfiguration"/> instance, optionally merging override values.</summary> public interface IConfigurationBuilder { + /// <summary>Merges the supplied key/value pairs into the configuration, overriding any existing values.</summary> void AddOverride(IReadOnlyDictionary<object, object?> value); + /// <summary>Produces the fully resolved <see cref="IGitVersionConfiguration"/>.</summary> IGitVersionConfiguration Build(); } diff --git a/src/GitVersion.Core/Configuration/IConfigurationFileLocator.cs b/src/GitVersion.Core/Configuration/IConfigurationFileLocator.cs index 24ff54d935..2e34cdcc20 100644 --- a/src/GitVersion.Core/Configuration/IConfigurationFileLocator.cs +++ b/src/GitVersion.Core/Configuration/IConfigurationFileLocator.cs @@ -1,7 +1,11 @@ namespace GitVersion.Configuration; +/// <summary>Locates and validates the GitVersion configuration file on the file system.</summary> public interface IConfigurationFileLocator { + /// <summary>Validates that at most one configuration file exists across the working and project root directories.</summary> void Verify(string? workingDirectory, string? projectRootDirectory); + + /// <summary>Returns the full path of the configuration file found in <paramref name="directoryPath"/>, or <see langword="null"/> if none exists.</summary> string? GetConfigurationFile(string? directoryPath); } diff --git a/src/GitVersion.Core/Configuration/IConfigurationProvider.cs b/src/GitVersion.Core/Configuration/IConfigurationProvider.cs index 14a4731776..c4510bee91 100644 --- a/src/GitVersion.Core/Configuration/IConfigurationProvider.cs +++ b/src/GitVersion.Core/Configuration/IConfigurationProvider.cs @@ -1,6 +1,8 @@ namespace GitVersion.Configuration; +/// <summary>Loads and provides the <see cref="IGitVersionConfiguration"/> for the current repository.</summary> public interface IConfigurationProvider { + /// <summary>Returns the resolved configuration, optionally applying the supplied override values.</summary> IGitVersionConfiguration Provide(IReadOnlyDictionary<object, object?>? overrideConfiguration = null); } diff --git a/src/GitVersion.Core/Configuration/IGitVersionConfiguration.cs b/src/GitVersion.Core/Configuration/IGitVersionConfiguration.cs index 1461d38034..b47dc96d3a 100644 --- a/src/GitVersion.Core/Configuration/IGitVersionConfiguration.cs +++ b/src/GitVersion.Core/Configuration/IGitVersionConfiguration.cs @@ -2,49 +2,72 @@ namespace GitVersion.Configuration; +/// <summary>Represents the top-level GitVersion configuration, extending branch-level configuration with global settings.</summary> public interface IGitVersionConfiguration : IBranchConfiguration { + /// <summary>Gets the name of the workflow preset (e.g. <c>GitFlow/v1</c> or <c>GitHubFlow/v1</c>) used as a base configuration.</summary> string? Workflow { get; } + /// <summary>Gets the scheme used to compute the <c>AssemblyVersionAttribute</c> value.</summary> AssemblyVersioningScheme? AssemblyVersioningScheme { get; } + /// <summary>Gets the scheme used to compute the <c>AssemblyFileVersionAttribute</c> value.</summary> AssemblyFileVersioningScheme? AssemblyFileVersioningScheme { get; } + /// <summary>Gets the format string used to compute the <c>AssemblyInformationalVersionAttribute</c> value.</summary> string? AssemblyInformationalFormat { get; } + /// <summary>Gets the format string used to compute the assembly version.</summary> string? AssemblyVersioningFormat { get; } + /// <summary>Gets the format string used to compute the assembly file version.</summary> string? AssemblyFileVersioningFormat { get; } + /// <summary>Gets the regex pattern that identifies tag prefixes to strip when parsing version tags.</summary> string? TagPrefixPattern { get; } + /// <summary>Gets the regex pattern used to extract a semantic version from a branch name.</summary> string? VersionInBranchPattern { get; } + /// <summary>Gets the manually configured next version, overriding automatic calculation.</summary> string? NextVersion { get; } + /// <summary>Gets the commit message pattern that triggers a major version bump.</summary> string? MajorVersionBumpMessage { get; } + /// <summary>Gets the commit message pattern that triggers a minor version bump.</summary> string? MinorVersionBumpMessage { get; } + /// <summary>Gets the commit message pattern that triggers a patch version bump.</summary> string? PatchVersionBumpMessage { get; } + /// <summary>Gets the commit message pattern that suppresses any version bump.</summary> string? NoBumpMessage { get; } + /// <summary>Gets the pre-release weight applied to tagged commits when calculating the weighted pre-release number.</summary> int? TagPreReleaseWeight { get; } + /// <summary>Gets the format string used when rendering commit dates in version output.</summary> string? CommitDateFormat { get; } + /// <summary>Gets a dictionary of named regex patterns for recognising merge commit message formats.</summary> IReadOnlyDictionary<string, string> MergeMessageFormats { get; } + /// <summary>Gets a value indicating whether the build number in the CI system should be updated.</summary> bool UpdateBuildNumber { get; } + /// <summary>Gets the semantic version format (strict or loose) used when parsing version strings.</summary> SemanticVersionFormat SemanticVersionFormat { get; } + /// <summary>Gets the set of version strategies enabled for this configuration.</summary> VersionStrategies VersionStrategy { get; } + /// <summary>Gets the per-branch configuration map, keyed by branch name pattern.</summary> IReadOnlyDictionary<string, IBranchConfiguration> Branches { get; } + /// <summary>Gets the configuration that controls which commits and time ranges are ignored during version calculation.</summary> IIgnoreConfiguration Ignore { get; } + /// <summary>Returns an empty branch configuration that carries no values.</summary> IBranchConfiguration GetEmptyBranchConfiguration(); } diff --git a/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs b/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs index e3396eb779..0e6fc39d4f 100644 --- a/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs +++ b/src/GitVersion.Core/Configuration/IIgnoreConfiguration.cs @@ -1,12 +1,17 @@ namespace GitVersion.Configuration; +/// <summary>Specifies which commits or time ranges should be excluded from version calculation.</summary> public interface IIgnoreConfiguration { + /// <summary>Gets the cut-off date before which commits are ignored; <see langword="null"/> means no date filter is applied.</summary> DateTimeOffset? Before { get; } + /// <summary>Gets the set of commit SHAs that should be excluded from version calculation.</summary> IReadOnlySet<string> Shas { get; } + /// <summary>Gets the set of file paths whose changes should be ignored during version calculation.</summary> IReadOnlySet<string> Paths { get; } + /// <summary>Gets a value indicating whether this configuration contains no ignore rules.</summary> bool IsEmpty { get; } } diff --git a/src/GitVersion.Core/Configuration/IPreventIncrementConfiguration.cs b/src/GitVersion.Core/Configuration/IPreventIncrementConfiguration.cs index bc8c1b9460..4ce5effa65 100644 --- a/src/GitVersion.Core/Configuration/IPreventIncrementConfiguration.cs +++ b/src/GitVersion.Core/Configuration/IPreventIncrementConfiguration.cs @@ -1,10 +1,14 @@ namespace GitVersion.Configuration; +/// <summary>Controls under what circumstances automatic version increments should be suppressed.</summary> public interface IPreventIncrementConfiguration { + /// <summary>Gets a value indicating whether version increment is prevented when this branch is itself the result of a merge.</summary> bool? OfMergedBranch { get; } + /// <summary>Gets a value indicating whether version increment is prevented at the point when this branch is merged into another.</summary> bool? WhenBranchMerged { get; } + /// <summary>Gets a value indicating whether version increment is prevented when the current commit is already tagged.</summary> bool? WhenCurrentCommitTagged { get; } } diff --git a/src/GitVersion.Core/Core/Abstractions/IEnvironment.cs b/src/GitVersion.Core/Core/Abstractions/IEnvironment.cs index be2dc06d31..6bd37f78de 100644 --- a/src/GitVersion.Core/Core/Abstractions/IEnvironment.cs +++ b/src/GitVersion.Core/Core/Abstractions/IEnvironment.cs @@ -1,7 +1,11 @@ namespace GitVersion; +/// <summary>Provides access to environment variables in the current process.</summary> public interface IEnvironment { + /// <summary>Returns the value of the named environment variable, or <see langword="null"/> if it is not set.</summary> string? GetEnvironmentVariable(string variableName); + + /// <summary>Sets the named environment variable to the given value, or removes it when <paramref name="value"/> is <see langword="null"/>.</summary> void SetEnvironmentVariable(string variableName, string? value); } diff --git a/src/GitVersion.Core/Core/Abstractions/IGitPreparer.cs b/src/GitVersion.Core/Core/Abstractions/IGitPreparer.cs index 8e47f43328..52a16c9915 100644 --- a/src/GitVersion.Core/Core/Abstractions/IGitPreparer.cs +++ b/src/GitVersion.Core/Core/Abstractions/IGitPreparer.cs @@ -2,8 +2,12 @@ namespace GitVersion; +/// <summary>Prepares the Git repository so that GitVersion can calculate the version (fetches, clones, and normalises refs as needed).</summary> public interface IGitPreparer { + /// <summary>Performs all preparation steps required before version calculation (fetch, clone, normalise).</summary> void Prepare(); + + /// <summary>Ensures a local branch exists that tracks the supplied <paramref name="currentBranch"/> on the given <paramref name="remote"/>.</summary> void EnsureLocalBranchExistsForCurrentBranch(IRemote remote, string currentBranch); } diff --git a/src/GitVersion.Core/Core/Abstractions/IGitVersionCalculateTool.cs b/src/GitVersion.Core/Core/Abstractions/IGitVersionCalculateTool.cs index 24c86e9428..682fe7ca75 100644 --- a/src/GitVersion.Core/Core/Abstractions/IGitVersionCalculateTool.cs +++ b/src/GitVersion.Core/Core/Abstractions/IGitVersionCalculateTool.cs @@ -2,7 +2,9 @@ namespace GitVersion; +/// <summary>Orchestrates the end-to-end version calculation and returns the resulting version variables.</summary> public interface IGitVersionCalculateTool { + /// <summary>Calculates all version variables for the current repository state.</summary> GitVersionVariables CalculateVersionVariables(); } diff --git a/src/GitVersion.Core/Core/Abstractions/IGitVersionContextFactory.cs b/src/GitVersion.Core/Core/Abstractions/IGitVersionContextFactory.cs index 0704022818..ae004c0d6d 100644 --- a/src/GitVersion.Core/Core/Abstractions/IGitVersionContextFactory.cs +++ b/src/GitVersion.Core/Core/Abstractions/IGitVersionContextFactory.cs @@ -1,6 +1,8 @@ namespace GitVersion; +/// <summary>Creates a <see cref="GitVersionContext"/> for the current repository and branch.</summary> public interface IGitVersionContextFactory { + /// <summary>Builds and returns the <see cref="GitVersionContext"/> for the current execution.</summary> GitVersionContext Create(); } diff --git a/src/GitVersion.Core/Core/Abstractions/IGitVersionModule.cs b/src/GitVersion.Core/Core/Abstractions/IGitVersionModule.cs index 2b1e7fefee..0c9fd847ca 100644 --- a/src/GitVersion.Core/Core/Abstractions/IGitVersionModule.cs +++ b/src/GitVersion.Core/Core/Abstractions/IGitVersionModule.cs @@ -2,10 +2,13 @@ namespace GitVersion; +/// <summary>Represents a self-contained IoC registration module that adds a cohesive set of services to the DI container.</summary> public interface IGitVersionModule { + /// <summary>Registers the services provided by this module into <paramref name="services"/>.</summary> void RegisterTypes(IServiceCollection services); + /// <summary>Returns all concrete types in <paramref name="assembly"/> that are assignable to <typeparamref name="T"/>.</summary> static IEnumerable<Type> FindAllDerivedTypes<T>(Assembly? assembly) { assembly.NotNull(); diff --git a/src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs b/src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs index 18fc7edd92..a781f0a403 100644 --- a/src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs +++ b/src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs @@ -3,11 +3,19 @@ namespace GitVersion.Common; +/// <summary>Provides high-level read access to a Git repository, exposing the objects and queries needed for version calculation.</summary> public interface IRepositoryStore { + /// <summary>Gets the number of files that have been modified but not yet committed.</summary> int UncommittedChangesCount { get; } + + /// <summary>Gets the currently checked-out branch.</summary> IBranch Head { get; } + + /// <summary>Gets the collection of all branches in the repository.</summary> IBranchCollection Branches { get; } + + /// <summary>Gets the collection of all tags in the repository.</summary> ITagCollection Tags { get; } /// <summary> @@ -15,26 +23,45 @@ public interface IRepositoryStore /// </summary> ICommit? FindMergeBase(IBranch? branch, IBranch? otherBranch); + /// <summary>Finds the best common ancestor between <paramref name="commit"/> and <paramref name="mainlineTip"/>.</summary> ICommit? FindMergeBase(ICommit commit, ICommit mainlineTip); + /// <summary>Returns the commit that should be treated as the current HEAD for version calculation, applying ignore rules.</summary> ICommit? GetCurrentCommit(IBranch currentBranch, string? commitId, IIgnoreConfiguration ignore); + + /// <summary>Returns the commit that represents a forward merge from <paramref name="commitToFindCommonBase"/> relative to <paramref name="findMergeBase"/>.</summary> ICommit? GetForwardMerge(ICommit? commitToFindCommonBase, ICommit? findMergeBase); + /// <summary>Returns the commits reachable between <paramref name="baseVersionSource"/> and <paramref name="currentCommit"/>, respecting ignore rules.</summary> IReadOnlyList<ICommit> GetCommitLog(ICommit? baseVersionSource, ICommit currentCommit, IIgnoreConfiguration ignore); + + /// <summary>Returns all commits reachable from the HEAD commit, respecting ignore rules.</summary> IReadOnlyList<ICommit> GetCommitsReacheableFromHead(ICommit? headCommit, IIgnoreConfiguration ignore); + + /// <summary>Returns all commits reachable from <paramref name="commit"/> that are also on <paramref name="branch"/>.</summary> IReadOnlyList<ICommit> GetCommitsReacheableFrom(ICommit commit, IBranch branch); + /// <summary>Resolves and returns the branch that matches <paramref name="targetBranchName"/>, creating a local branch if necessary.</summary> IBranch GetTargetBranch(string? targetBranchName); + + /// <summary>Finds and returns the branch with the given <paramref name="branchName"/>, or <see langword="null"/> if not found.</summary> IBranch? FindBranch(ReferenceName branchName); + /// <summary>Returns all branches except those in <paramref name="branchesToExclude"/>.</summary> IEnumerable<IBranch> ExcludingBranches(IEnumerable<IBranch> branchesToExclude); + + /// <summary>Returns branches that contain the given <paramref name="commit"/> in their history.</summary> IEnumerable<IBranch> GetBranchesContainingCommit(ICommit commit, IEnumerable<IBranch>? branches = null, bool onlyTrackedBranches = false); + /// <summary>Returns the commits and their originating branches that branched from <paramref name="branch"/>, excluding <paramref name="excludedBranches"/>.</summary> IEnumerable<BranchCommit> FindCommitBranchesBranchedFrom(IBranch branch, IGitVersionConfiguration configuration, params IBranch[] excludedBranches); + /// <summary>Returns the branches that <paramref name="branch"/> was directly branched from, excluding <paramref name="excludedBranches"/>.</summary> IEnumerable<IBranch> GetSourceBranches(IBranch branch, IGitVersionConfiguration configuration, params IBranch[] excludedBranches); + /// <summary>Returns the branches that <paramref name="branch"/> was directly branched from, excluding the given collection of branches.</summary> IEnumerable<IBranch> GetSourceBranches(IBranch branch, IGitVersionConfiguration configuration, IEnumerable<IBranch> excludedBranches); + /// <summary>Returns <see langword="true"/> if <paramref name="baseVersionSource"/> is an ancestor of <paramref name="firstMatchingCommit"/> on <paramref name="branch"/>.</summary> bool IsCommitOnBranch(ICommit? baseVersionSource, IBranch branch, ICommit firstMatchingCommit); } diff --git a/src/GitVersion.Core/Core/Exceptions/BugException.cs b/src/GitVersion.Core/Core/Exceptions/BugException.cs index ba231b96eb..acc6e9bfc2 100644 --- a/src/GitVersion.Core/Core/Exceptions/BugException.cs +++ b/src/GitVersion.Core/Core/Exceptions/BugException.cs @@ -1,15 +1,19 @@ namespace GitVersion; +/// <summary>Indicates an internal logic error that should never occur in normal usage; represents a bug in GitVersion itself.</summary> public class BugException : Exception { + /// <summary>Initializes a new instance with the given error message.</summary> public BugException(string message) : base(message) { } + /// <summary>Initializes a new instance with no message.</summary> public BugException() { } + /// <summary>Initializes a new instance with the given message and inner exception.</summary> public BugException(string? message, Exception? innerException) : base(message, innerException) { } diff --git a/src/GitVersion.Core/Core/Exceptions/GitVersionException.cs b/src/GitVersion.Core/Core/Exceptions/GitVersionException.cs index 3fc07f140b..303d22a4f9 100644 --- a/src/GitVersion.Core/Core/Exceptions/GitVersionException.cs +++ b/src/GitVersion.Core/Core/Exceptions/GitVersionException.cs @@ -1,22 +1,27 @@ namespace GitVersion; +/// <summary>Base exception type for errors raised by GitVersion during normal operation.</summary> [Serializable] public class GitVersionException : Exception { + /// <summary>Initializes a new instance with no message.</summary> public GitVersionException() { } + /// <summary>Initializes a new instance with the given error message.</summary> public GitVersionException(string message) : base(message) { } + /// <summary>Initializes a new instance with the given message and inner exception.</summary> public GitVersionException(string message, Exception innerException) : base(message, innerException) { } + /// <summary>Initializes a new instance using the formatted message string.</summary> public GitVersionException(string messageFormat, params object[] args) : base(string.Format(messageFormat, args)) { } diff --git a/src/GitVersion.Core/Core/Exceptions/LockedFileException.cs b/src/GitVersion.Core/Core/Exceptions/LockedFileException.cs index 3cef30a364..52a6d91af2 100644 --- a/src/GitVersion.Core/Core/Exceptions/LockedFileException.cs +++ b/src/GitVersion.Core/Core/Exceptions/LockedFileException.cs @@ -1,19 +1,24 @@ namespace GitVersion; +/// <summary>Raised when a file cannot be accessed because it is locked by another process.</summary> public class LockedFileException : Exception { + /// <summary>Initializes a new instance wrapping the given inner exception and using its message.</summary> public LockedFileException(Exception inner) : base(inner.Message, inner) { } + /// <summary>Initializes a new instance with no message.</summary> public LockedFileException() { } + /// <summary>Initializes a new instance with the given error message.</summary> public LockedFileException(string? message) : base(message) { } + /// <summary>Initializes a new instance with the given message and inner exception.</summary> public LockedFileException(string? message, Exception? innerException) : base(message, innerException) { } diff --git a/src/GitVersion.Core/Core/Exceptions/WarningException.cs b/src/GitVersion.Core/Core/Exceptions/WarningException.cs index eae03f9071..91129ec385 100644 --- a/src/GitVersion.Core/Core/Exceptions/WarningException.cs +++ b/src/GitVersion.Core/Core/Exceptions/WarningException.cs @@ -1,17 +1,21 @@ namespace GitVersion; +/// <summary>Raised to report a recoverable warning condition that should be presented to the user rather than treated as a hard error.</summary> [Serializable] public class WarningException : Exception { + /// <summary>Initializes a new instance with the given warning message.</summary> public WarningException(string message) : base(message) { } + /// <summary>Initializes a new instance with no message.</summary> public WarningException() { } + /// <summary>Initializes a new instance with the given message and inner exception.</summary> public WarningException(string? message, Exception? innerException) : base(message, innerException) { } diff --git a/src/GitVersion.Core/Extensions/AssemblyVersionsGeneratorExtensions.cs b/src/GitVersion.Core/Extensions/AssemblyVersionsGeneratorExtensions.cs index f3c57ed547..0ec0927817 100644 --- a/src/GitVersion.Core/Extensions/AssemblyVersionsGeneratorExtensions.cs +++ b/src/GitVersion.Core/Extensions/AssemblyVersionsGeneratorExtensions.cs @@ -2,10 +2,12 @@ namespace GitVersion.Extensions; +/// <summary>Extension methods on <see cref="SemanticVersion"/> for generating assembly version strings.</summary> public static class AssemblyVersionsGeneratorExtensions { extension(SemanticVersion sv) { + /// <summary>Returns the <c>AssemblyVersionAttribute</c> value for the given <paramref name="scheme"/>, or <see langword="null"/> when the scheme is <see cref="AssemblyVersioningScheme.None"/>.</summary> public string? GetAssemblyVersion(AssemblyVersioningScheme scheme) => scheme switch { @@ -17,6 +19,7 @@ public static class AssemblyVersionsGeneratorExtensions _ => throw new ArgumentException($"Unexpected value ({scheme}).", nameof(scheme)) }; + /// <summary>Returns the <c>AssemblyFileVersionAttribute</c> value for the given <paramref name="scheme"/>, or <see langword="null"/> when the scheme is <see cref="AssemblyFileVersioningScheme.None"/>.</summary> public string? GetAssemblyFileVersion(AssemblyFileVersioningScheme scheme) => scheme switch { diff --git a/src/GitVersion.Core/Extensions/CommonExtensions.cs b/src/GitVersion.Core/Extensions/CommonExtensions.cs index bcb368cb5a..5e08ffb207 100644 --- a/src/GitVersion.Core/Extensions/CommonExtensions.cs +++ b/src/GitVersion.Core/Extensions/CommonExtensions.cs @@ -3,11 +3,14 @@ namespace GitVersion.Extensions; +/// <summary>General-purpose extension and guard methods used throughout GitVersion.</summary> public static class CommonExtensions { + /// <summary>Throws <see cref="ArgumentNullException"/> when <paramref name="value"/> is <see langword="null"/>; otherwise returns the value.</summary> public static T NotNull<T>([NotNull] this T? value, [CallerArgumentExpression(nameof(value))] string name = "") where T : class => value ?? throw new ArgumentNullException(name); + /// <summary>Throws <see cref="ArgumentException"/> when <paramref name="value"/> is <see langword="null"/> or empty; otherwise returns the value.</summary> public static string NotNullOrEmpty([NotNull] this string? value, [CallerArgumentExpression(nameof(value))] string name = "") { if (string.IsNullOrEmpty(value)) @@ -18,6 +21,7 @@ public static string NotNullOrEmpty([NotNull] this string? value, [CallerArgumen return value; } + /// <summary>Throws <see cref="ArgumentException"/> when <paramref name="value"/> is <see langword="null"/>, empty, or whitespace; otherwise returns the value.</summary> public static string NotNullOrWhitespace([NotNull] this string? value, [CallerArgumentExpression(nameof(value))] string name = "") { if (string.IsNullOrWhiteSpace(value)) diff --git a/src/GitVersion.Core/Extensions/EnumerableExtensions.cs b/src/GitVersion.Core/Extensions/EnumerableExtensions.cs index 764fb89008..2a2ed6c28e 100644 --- a/src/GitVersion.Core/Extensions/EnumerableExtensions.cs +++ b/src/GitVersion.Core/Extensions/EnumerableExtensions.cs @@ -1,7 +1,9 @@ namespace GitVersion.Extensions; +/// <summary>Extension methods that augment <see cref="IEnumerable{T}"/> and related collection types.</summary> public static class EnumerableExtensions { + /// <summary>Returns the single element of the sequence, or <see langword="default"/> if the sequence is empty or contains more than one element.</summary> public static T? OnlyOrDefault<T>(this IEnumerable<T> source) { ArgumentNullException.ThrowIfNull(source); @@ -18,6 +20,7 @@ public static class EnumerableExtensions return !e.MoveNext() ? current : default; } + /// <summary>Returns the single element of type <typeparamref name="T"/> from a non-generic sequence, throwing if not exactly one exists.</summary> public static T SingleOfType<T>(this IEnumerable source) { ArgumentNullException.ThrowIfNull(source); @@ -25,6 +28,7 @@ public static T SingleOfType<T>(this IEnumerable source) return source.OfType<T>().Single(); } + /// <summary>Appends all elements of <paramref name="items"/> to <paramref name="source"/>.</summary> public static void AddRange<T>(this ICollection<T> source, IEnumerable<T> items) { source.NotNull(); diff --git a/src/GitVersion.Core/Extensions/FileSystemExtensions.cs b/src/GitVersion.Core/Extensions/FileSystemExtensions.cs index 1b8b26cc86..572941e494 100644 --- a/src/GitVersion.Core/Extensions/FileSystemExtensions.cs +++ b/src/GitVersion.Core/Extensions/FileSystemExtensions.cs @@ -3,10 +3,12 @@ namespace GitVersion.Extensions; +/// <summary>Extension methods on <see cref="IFileSystem"/> for common file-system operations.</summary> public static class FileSystemExtensions { extension(IFileSystem fileSystem) { + /// <summary>Returns the latest last-write timestamp (in UTC ticks) of any subdirectory under <paramref name="path"/>.</summary> public long GetLastDirectoryWrite(string path) => fileSystem.DirectoryInfo.New(path) .GetDirectories("*.*", SearchOption.AllDirectories) .Select(d => d.LastWriteTimeUtc) @@ -14,6 +16,7 @@ public long GetLastDirectoryWrite(string path) => fileSystem.DirectoryInfo.New(p .Max() .Ticks; + /// <summary>Walks up the directory tree from <paramref name="path"/> looking for a <c>.git</c> directory or file, returning the git directory and working-tree paths when found.</summary> public (string GitDirectory, string WorkingTreeDirectory)? FindGitDir(string? path) { var startingDir = path; diff --git a/src/GitVersion.Core/Extensions/GitExtensions.cs b/src/GitVersion.Core/Extensions/GitExtensions.cs index 104fa9d3ee..7e38be4b9f 100644 --- a/src/GitVersion.Core/Extensions/GitExtensions.cs +++ b/src/GitVersion.Core/Extensions/GitExtensions.cs @@ -1,7 +1,9 @@ namespace GitVersion.Extensions; +/// <summary>Extension and utility methods that supplement Git-related operations.</summary> public static class GitExtensions { + /// <summary>Writes a hint message explaining how to run <c>git log --graph</c> to visualise the repository history.</summary> public static void DumpGraphLog(Action<string>? writer = null, int? maxCommits = null) { var output = new StringBuilder(); @@ -16,6 +18,7 @@ public static void DumpGraphLog(Action<string>? writer = null, int? maxCommits = } } + /// <summary>Builds the <c>git log</c> argument string for a decorated graph view, optionally limiting to <paramref name="maxCommits"/> commits.</summary> public static string CreateGitLogArgs(int? maxCommits) { var commits = maxCommits != null ? $" -n {maxCommits}" : null; diff --git a/src/GitVersion.Core/Extensions/IncrementStrategyExtensions.cs b/src/GitVersion.Core/Extensions/IncrementStrategyExtensions.cs index 0fe6ae3417..5629da2e34 100644 --- a/src/GitVersion.Core/Extensions/IncrementStrategyExtensions.cs +++ b/src/GitVersion.Core/Extensions/IncrementStrategyExtensions.cs @@ -1,9 +1,11 @@ namespace GitVersion.Extensions; +/// <summary>Extension methods on <see cref="IncrementStrategy"/> for converting to related types.</summary> public static class IncrementStrategyExtensions { extension(IncrementStrategy strategy) { + /// <summary>Converts the <see cref="IncrementStrategy"/> to the equivalent <see cref="VersionField"/>.</summary> public VersionField ToVersionField() => strategy switch { IncrementStrategy.None => VersionField.None, diff --git a/src/GitVersion.Core/Extensions/ReadEmbeddedResourceExtensions.cs b/src/GitVersion.Core/Extensions/ReadEmbeddedResourceExtensions.cs index b19218bf8d..95bbf02d99 100644 --- a/src/GitVersion.Core/Extensions/ReadEmbeddedResourceExtensions.cs +++ b/src/GitVersion.Core/Extensions/ReadEmbeddedResourceExtensions.cs @@ -1,12 +1,15 @@ namespace GitVersion.Extensions; +/// <summary>Extension methods on <see cref="string"/> for reading embedded assembly resources.</summary> public static class ReadEmbeddedResourceExtensions { extension(string resourceName) { + /// <summary>Reads the embedded resource identified by this name from the assembly that contains <typeparamref name="T"/> and returns its content as a string.</summary> public string ReadAsStringFromEmbeddedResource<T>() => ReadAsStringFromEmbeddedResource(resourceName, typeof(T).Assembly); + /// <summary>Reads the embedded resource identified by this name from the given <paramref name="assembly"/> and returns its content as a string.</summary> public string ReadAsStringFromEmbeddedResource(Assembly assembly) { using var stream = resourceName.ReadFromEmbeddedResource(assembly); diff --git a/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs b/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs index 69b6492e93..84254303a0 100644 --- a/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs +++ b/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs @@ -5,13 +5,16 @@ namespace GitVersion.Configuration; +/// <summary>Extension methods on <see cref="ReferenceName"/> for semantic-version extraction.</summary> public static class ReferenceNameExtensions { extension(ReferenceName source) { + /// <summary>Attempts to parse a semantic version from this reference name using the supplied effective configuration.</summary> public bool TryGetSemanticVersion(EffectiveConfiguration configuration, out SemanticVersionResult result) => source.TryGetSemanticVersion(configuration.VersionInBranchPattern, configuration.TagPrefixPattern, configuration.SemanticVersionFormat, out result); + /// <summary>Attempts to parse a semantic version from this reference name using the supplied global configuration.</summary> public bool TryGetSemanticVersion(IGitVersionConfiguration configuration, out SemanticVersionResult result) => source.TryGetSemanticVersion(configuration.VersionInBranchPattern, configuration.TagPrefixPattern, configuration.SemanticVersionFormat, out result); diff --git a/src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs b/src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs index 12116717fe..061762584b 100644 --- a/src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs +++ b/src/GitVersion.Core/Extensions/ServiceCollectionExtensions.cs @@ -1,9 +1,11 @@ namespace GitVersion.Extensions; +/// <summary>Extension methods on <see cref="IServiceCollection"/> and <see cref="IServiceProvider"/> for GitVersion module registration.</summary> public static class ServiceCollectionExtensions { extension(IServiceCollection serviceCollection) { + /// <summary>Registers all services declared by <paramref name="gitVersionModule"/> into <paramref name="serviceCollection"/>.</summary> public IServiceCollection AddModule(IGitVersionModule gitVersionModule) { gitVersionModule.RegisterTypes(serviceCollection); @@ -13,6 +15,7 @@ public IServiceCollection AddModule(IGitVersionModule gitVersionModule) extension(IServiceProvider serviceProvider) { + /// <summary>Returns the registered <typeparamref name="TService"/> whose concrete type is exactly <typeparamref name="TType"/>.</summary> public TService GetServiceForType<TService, TType>() => serviceProvider.GetServices<TService>().Single(t => t?.GetType() == typeof(TType)); } diff --git a/src/GitVersion.Core/Extensions/StringExtensions.cs b/src/GitVersion.Core/Extensions/StringExtensions.cs index cb36b0833f..998a158092 100644 --- a/src/GitVersion.Core/Extensions/StringExtensions.cs +++ b/src/GitVersion.Core/Extensions/StringExtensions.cs @@ -4,20 +4,24 @@ namespace GitVersion.Extensions; +/// <summary>Extension methods on <see cref="string"/> and <see cref="StringBuilder"/> for common string manipulations.</summary> public static class StringExtensions { + /// <summary>Appends a formatted line (format + newline) to the <see cref="StringBuilder"/>.</summary> public static void AppendLineFormat(this StringBuilder stringBuilder, string format, params object[] args) { stringBuilder.AppendFormat(format, args); stringBuilder.AppendLine(); } + /// <summary>Replaces all occurrences of <paramref name="pattern"/> in <paramref name="input"/> with <paramref name="replace"/> using the regex cache.</summary> public static string RegexReplace(this string input, string pattern, string replace) { var regex = RegexPatterns.Cache.GetOrAdd(pattern); return regex.Replace(input, replace); } + /// <summary>Returns <see langword="true"/> when <paramref name="self"/> and <paramref name="other"/> are equal under ordinal case-insensitive comparison.</summary> public static bool IsEquivalentTo(this string self, string? other) => string.Equals(self, other, StringComparison.OrdinalIgnoreCase); @@ -27,8 +31,10 @@ public static bool IsEquivalentTo(this string self, string? other) => /// <inheritdoc cref="string.IsNullOrWhiteSpace"/> public static bool IsNullOrWhiteSpace([NotNullWhen(false)] this string? value) => string.IsNullOrWhiteSpace(value); + /// <summary>Returns <see langword="true"/> when <paramref name="value"/> is exactly <see cref="string.Empty"/>.</summary> public static bool IsEmpty([NotNullWhen(false)] this string? value) => string.Empty.Equals(value); + /// <summary>Prepends <paramref name="prefix"/> to <paramref name="value"/> when the value is non-empty; returns the original value otherwise.</summary> public static string WithPrefixIfNotNullOrEmpty(this string value, string prefix) => string.IsNullOrEmpty(value) ? value : prefix + value; diff --git a/src/GitVersion.Core/Git/AuthenticationInfo.cs b/src/GitVersion.Core/Git/AuthenticationInfo.cs index 24d6798735..d48c36d080 100644 --- a/src/GitVersion.Core/Git/AuthenticationInfo.cs +++ b/src/GitVersion.Core/Git/AuthenticationInfo.cs @@ -1,8 +1,14 @@ namespace GitVersion.Git; +/// <summary>Holds credentials used when authenticating with a remote Git repository.</summary> public record AuthenticationInfo { + /// <summary>Gets or sets the username for basic authentication.</summary> public string? Username { get; set; } + + /// <summary>Gets or sets the password for basic authentication.</summary> public string? Password { get; set; } + + /// <summary>Gets or sets the personal access token used instead of a username/password pair.</summary> public string? Token { get; set; } } diff --git a/src/GitVersion.Core/Git/BranchCommit.cs b/src/GitVersion.Core/Git/BranchCommit.cs index ccc926033a..af280d127f 100644 --- a/src/GitVersion.Core/Git/BranchCommit.cs +++ b/src/GitVersion.Core/Git/BranchCommit.cs @@ -8,11 +8,16 @@ namespace GitVersion.Git; [DebuggerDisplay("{Branch} {Commit}")] public readonly struct BranchCommit(ICommit commit, IBranch branch) : IEquatable<BranchCommit?> { + /// <summary>Represents an absent or unresolved branch/commit pair.</summary> public static readonly BranchCommit Empty = new(); + /// <summary>Gets the branch associated with this commit.</summary> public IBranch Branch { get; } = branch.NotNull(); + + /// <summary>Gets the commit on the branch.</summary> public ICommit Commit { get; } = commit.NotNull(); + /// <summary>Returns <see langword="true"/> when <paramref name="other"/> refers to the same branch and commit.</summary> public bool Equals(BranchCommit? other) { if (other is null) @@ -21,8 +26,10 @@ public bool Equals(BranchCommit? other) return Equals(Branch, other.Value.Branch) && Equals(Commit, other.Value.Commit); } + /// <summary>Returns <see langword="true"/> when <paramref name="obj"/> is a <see cref="BranchCommit"/> that equals this instance.</summary> public override bool Equals(object? obj) => obj is not null && Equals(obj as BranchCommit?); + /// <summary>Returns a hash code computed from the branch and commit.</summary> public override int GetHashCode() { unchecked @@ -31,7 +38,9 @@ public override int GetHashCode() } } + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> represent the same branch/commit pair.</summary> public static bool operator ==(BranchCommit left, BranchCommit right) => left.Equals(right); + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> represent different branch/commit pairs.</summary> public static bool operator !=(BranchCommit left, BranchCommit right) => !left.Equals(right); } diff --git a/src/GitVersion.Core/Git/CommitFilter.cs b/src/GitVersion.Core/Git/CommitFilter.cs index 074f7d67d4..fd5e238c18 100644 --- a/src/GitVersion.Core/Git/CommitFilter.cs +++ b/src/GitVersion.Core/Git/CommitFilter.cs @@ -1,13 +1,22 @@ namespace GitVersion.Git; +/// <summary>Specifies criteria used to filter and order commits when querying a commit collection.</summary> public record CommitFilter { + /// <summary>Gets a value indicating whether only the first-parent chain should be traversed.</summary> public bool FirstParentOnly { get; init; } + + /// <summary>Gets the commit, branch, or tag from which reachable commits are included.</summary> public object? IncludeReachableFrom { get; init; } + + /// <summary>Gets the commit, branch, or tag whose reachable commits are excluded from the result.</summary> public object? ExcludeReachableFrom { get; init; } + + /// <summary>Gets the ordering strategy applied to the resulting commits.</summary> public CommitSortStrategies SortBy { get; init; } } +/// <summary>Specifies how commits are ordered when traversing the commit graph.</summary> [Flags] public enum CommitSortStrategies { diff --git a/src/GitVersion.Core/Git/IBranch.cs b/src/GitVersion.Core/Git/IBranch.cs index 4c78171180..e3f5126640 100644 --- a/src/GitVersion.Core/Git/IBranch.cs +++ b/src/GitVersion.Core/Git/IBranch.cs @@ -1,10 +1,20 @@ namespace GitVersion.Git; +/// <summary>Represents a Git branch, exposing its tip commit and tracking information.</summary> public interface IBranch : IEquatable<IBranch?>, IComparable<IBranch>, INamedReference { + /// <summary>Gets the most recent commit on this branch, or <see langword="null"/> for an empty branch.</summary> ICommit? Tip { get; } + + /// <summary>Gets a value indicating whether this branch is a remote-tracking branch.</summary> bool IsRemote { get; } + + /// <summary>Gets a value indicating whether this branch tracks a remote branch.</summary> bool IsTracking { get; } + + /// <summary>Gets a value indicating whether HEAD is in a detached state pointing at this branch's tip.</summary> bool IsDetachedHead { get; } + + /// <summary>Gets the ordered sequence of commits reachable from this branch's tip.</summary> ICommitCollection Commits { get; } } diff --git a/src/GitVersion.Core/Git/IBranchCollection.cs b/src/GitVersion.Core/Git/IBranchCollection.cs index 5943bdf7d8..930d3933e7 100644 --- a/src/GitVersion.Core/Git/IBranchCollection.cs +++ b/src/GitVersion.Core/Git/IBranchCollection.cs @@ -1,8 +1,14 @@ namespace GitVersion.Git; +/// <summary>Represents the set of all branches in a Git repository.</summary> public interface IBranchCollection : IEnumerable<IBranch> { + /// <summary>Returns the branch with the given <paramref name="name"/>, or <see langword="null"/> if it does not exist.</summary> IBranch? this[string name] { get; } + + /// <summary>Returns all branches except those in <paramref name="branchesToExclude"/>.</summary> IEnumerable<IBranch> ExcludeBranches(IEnumerable<IBranch> branchesToExclude); + + /// <summary>Updates the remote-tracking branch reference for <paramref name="branch"/> to point to <paramref name="remoteTrackingReferenceName"/>.</summary> void UpdateTrackedBranch(IBranch branch, string remoteTrackingReferenceName); } diff --git a/src/GitVersion.Core/Git/ICommit.cs b/src/GitVersion.Core/Git/ICommit.cs index 490ad702ad..d6ea89cf26 100644 --- a/src/GitVersion.Core/Git/ICommit.cs +++ b/src/GitVersion.Core/Git/ICommit.cs @@ -1,18 +1,26 @@ namespace GitVersion.Git; +/// <summary>Represents a single Git commit.</summary> public interface ICommit : IEquatable<ICommit?>, IComparable<ICommit> { + /// <summary>Gets the direct parent commits of this commit.</summary> IReadOnlyList<ICommit> Parents { get; } + /// <summary>Gets the object identifier (SHA) of this commit.</summary> IObjectId Id { get; } + /// <summary>Gets the full SHA-1 hash string of this commit.</summary> string Sha { get; } + /// <summary>Gets the author date of this commit.</summary> DateTimeOffset When { get; } + /// <summary>Gets the full commit message.</summary> string Message { get; } + /// <summary>Gets a value indicating whether this is a merge commit (has more than one parent).</summary> bool IsMergeCommit { get; } + /// <summary>Gets the paths of files changed in this commit relative to its first parent.</summary> IReadOnlyList<string> DiffPaths { get; } } diff --git a/src/GitVersion.Core/Git/ICommitCollection.cs b/src/GitVersion.Core/Git/ICommitCollection.cs index 8bf6267f37..7d69ca751e 100644 --- a/src/GitVersion.Core/Git/ICommitCollection.cs +++ b/src/GitVersion.Core/Git/ICommitCollection.cs @@ -1,7 +1,11 @@ namespace GitVersion.Git; +/// <summary>Represents an ordered, queryable collection of commits in a Git repository.</summary> public interface ICommitCollection : IEnumerable<ICommit> { + /// <summary>Returns all commits whose author date is earlier than <paramref name="olderThan"/>.</summary> IEnumerable<ICommit> GetCommitsPriorTo(DateTimeOffset olderThan); + + /// <summary>Returns commits matching the supplied <paramref name="commitFilter"/>.</summary> IEnumerable<ICommit> QueryBy(CommitFilter commitFilter); } diff --git a/src/GitVersion.Core/Git/IGitRepository.cs b/src/GitVersion.Core/Git/IGitRepository.cs index 7653744b77..1e19333053 100644 --- a/src/GitVersion.Core/Git/IGitRepository.cs +++ b/src/GitVersion.Core/Git/IGitRepository.cs @@ -1,21 +1,44 @@ namespace GitVersion.Git; +/// <summary>Provides read-only access to a Git repository.</summary> public interface IGitRepository : IDisposable { + /// <summary>Gets the path to the <c>.git</c> directory.</summary> string Path { get; } + + /// <summary>Gets the path to the working tree root directory.</summary> string WorkingDirectory { get; } + + /// <summary>Gets a value indicating whether HEAD is in a detached state.</summary> bool IsHeadDetached { get; } + + /// <summary>Gets a value indicating whether the repository is a shallow clone.</summary> bool IsShallow { get; } + /// <summary>Gets the currently checked-out branch.</summary> IBranch Head { get; } + /// <summary>Gets the collection of all tags in the repository.</summary> ITagCollection Tags { get; } + + /// <summary>Gets the collection of all references in the repository.</summary> IReferenceCollection References { get; } + + /// <summary>Gets the collection of all branches in the repository.</summary> IBranchCollection Branches { get; } + + /// <summary>Gets the collection of all commits reachable from HEAD.</summary> ICommitCollection Commits { get; } + + /// <summary>Gets the collection of configured remotes.</summary> IRemoteCollection Remotes { get; } + /// <summary>Finds the best common ancestor between <paramref name="commit"/> and <paramref name="otherCommit"/>.</summary> ICommit? FindMergeBase(ICommit commit, ICommit otherCommit); + + /// <summary>Returns the number of files that have been modified but not yet staged or committed.</summary> int UncommittedChangesCount(); + + /// <summary>Loads the repository located at <paramref name="gitDirectory"/>.</summary> void DiscoverRepository(string? gitDirectory); } diff --git a/src/GitVersion.Core/Git/IGitRepositoryInfo.cs b/src/GitVersion.Core/Git/IGitRepositoryInfo.cs index 4aff8edd97..aaba9ec71b 100644 --- a/src/GitVersion.Core/Git/IGitRepositoryInfo.cs +++ b/src/GitVersion.Core/Git/IGitRepositoryInfo.cs @@ -1,9 +1,17 @@ namespace GitVersion.Git; +/// <summary>Provides paths describing the layout of the Git repository on disk.</summary> public interface IGitRepositoryInfo { + /// <summary>Gets the path to the <c>.git</c> directory, or <see langword="null"/> when not yet discovered.</summary> string? DotGitDirectory { get; } + + /// <summary>Gets the path to the project root directory (the directory that contains the solution or project file), or <see langword="null"/> when not determined.</summary> string? ProjectRootDirectory { get; } + + /// <summary>Gets the path to the dynamically created Git repository used for shallow-clone scenarios, or <see langword="null"/> when not applicable.</summary> string? DynamicGitRepositoryPath { get; } + + /// <summary>Gets the root path of the Git working tree, or <see langword="null"/> when not yet discovered.</summary> string? GitRootPath { get; } } diff --git a/src/GitVersion.Core/Git/IMutatingGitRepository.cs b/src/GitVersion.Core/Git/IMutatingGitRepository.cs index b7dc7bf811..4cb88af090 100644 --- a/src/GitVersion.Core/Git/IMutatingGitRepository.cs +++ b/src/GitVersion.Core/Git/IMutatingGitRepository.cs @@ -1,9 +1,17 @@ namespace GitVersion.Git; +/// <summary>Extends <see cref="IGitRepository"/> with operations that modify the repository state.</summary> public interface IMutatingGitRepository : IGitRepository { + /// <summary>Creates a local branch that tracks the pull-request ref identified by the current build environment.</summary> void CreateBranchForPullRequestBranch(AuthenticationInfo auth); + + /// <summary>Checks out the specified commit or branch.</summary> void Checkout(string commitOrBranchSpec); + + /// <summary>Fetches the given <paramref name="refSpecs"/> from <paramref name="remote"/> using the supplied credentials.</summary> void Fetch(string remote, IEnumerable<string> refSpecs, AuthenticationInfo auth, string? logMessage); + + /// <summary>Clones the repository at <paramref name="sourceUrl"/> into <paramref name="workdirPath"/> using the supplied credentials.</summary> void Clone(string? sourceUrl, string? workdirPath, AuthenticationInfo auth); } diff --git a/src/GitVersion.Core/Git/INamedReference.cs b/src/GitVersion.Core/Git/INamedReference.cs index 2c41175783..f6906a0307 100644 --- a/src/GitVersion.Core/Git/INamedReference.cs +++ b/src/GitVersion.Core/Git/INamedReference.cs @@ -1,6 +1,8 @@ namespace GitVersion.Git; +/// <summary>Represents any Git object (branch, tag, or ref) that has a canonical reference name.</summary> public interface INamedReference { + /// <summary>Gets the canonical name of this reference.</summary> ReferenceName Name { get; } } diff --git a/src/GitVersion.Core/Git/IObjectId.cs b/src/GitVersion.Core/Git/IObjectId.cs index b303cc953d..ca96d0222c 100644 --- a/src/GitVersion.Core/Git/IObjectId.cs +++ b/src/GitVersion.Core/Git/IObjectId.cs @@ -1,7 +1,11 @@ namespace GitVersion.Git; +/// <summary>Represents the SHA-1 object identifier of a Git object.</summary> public interface IObjectId : IEquatable<IObjectId?>, IComparable<IObjectId> { + /// <summary>Gets the full 40-character hexadecimal SHA-1 string.</summary> string Sha { get; } + + /// <summary>Returns a shortened representation of the SHA using the first <paramref name="prefixLength"/> characters.</summary> string ToString(int prefixLength); } diff --git a/src/GitVersion.Core/Git/IRefSpec.cs b/src/GitVersion.Core/Git/IRefSpec.cs index 777641c1b4..e360e1ccf6 100644 --- a/src/GitVersion.Core/Git/IRefSpec.cs +++ b/src/GitVersion.Core/Git/IRefSpec.cs @@ -1,9 +1,17 @@ namespace GitVersion.Git; +/// <summary>Represents a Git refspec that maps source references to destination references for a remote operation.</summary> public interface IRefSpec : IEquatable<IRefSpec?>, IComparable<IRefSpec> { + /// <summary>Gets the full refspec string (e.g. <c>+refs/heads/*:refs/remotes/origin/*</c>).</summary> string Specification { get; } + + /// <summary>Gets the direction of this refspec (fetch or push).</summary> RefSpecDirection Direction { get; } + + /// <summary>Gets the source pattern of the refspec.</summary> string Source { get; } + + /// <summary>Gets the destination pattern of the refspec.</summary> string Destination { get; } } diff --git a/src/GitVersion.Core/Git/IRefSpecCollection.cs b/src/GitVersion.Core/Git/IRefSpecCollection.cs index d007874d8c..c15098f621 100644 --- a/src/GitVersion.Core/Git/IRefSpecCollection.cs +++ b/src/GitVersion.Core/Git/IRefSpecCollection.cs @@ -1,3 +1,4 @@ namespace GitVersion.Git; +/// <summary>Represents an ordered collection of <see cref="IRefSpec"/> objects for a remote.</summary> public interface IRefSpecCollection : IEnumerable<IRefSpec>; diff --git a/src/GitVersion.Core/Git/IReference.cs b/src/GitVersion.Core/Git/IReference.cs index 6b560af39b..7f355a42ee 100644 --- a/src/GitVersion.Core/Git/IReference.cs +++ b/src/GitVersion.Core/Git/IReference.cs @@ -1,7 +1,11 @@ namespace GitVersion.Git; +/// <summary>Represents a Git reference (branch tip, tag, or symbolic ref).</summary> public interface IReference : IEquatable<IReference?>, IComparable<IReference>, INamedReference { + /// <summary>Gets the raw string that the reference points to (SHA or another reference name).</summary> string TargetIdentifier { get; } + + /// <summary>Gets the resolved object ID that this reference ultimately points to, or <see langword="null"/> for a broken reference.</summary> IObjectId? ReferenceTargetId { get; } } diff --git a/src/GitVersion.Core/Git/IReferenceCollection.cs b/src/GitVersion.Core/Git/IReferenceCollection.cs index 6b4f639386..3b760c2eac 100644 --- a/src/GitVersion.Core/Git/IReferenceCollection.cs +++ b/src/GitVersion.Core/Git/IReferenceCollection.cs @@ -1,11 +1,23 @@ namespace GitVersion.Git; +/// <summary>Represents the set of all references in a Git repository.</summary> public interface IReferenceCollection : IEnumerable<IReference> { + /// <summary>Gets the current HEAD reference, or <see langword="null"/> when HEAD is unborn.</summary> IReference? Head { get; } + + /// <summary>Returns the reference with the given canonical <paramref name="name"/>, or <see langword="null"/> if it does not exist.</summary> IReference? this[string name] { get; } + + /// <summary>Returns the reference with the given <paramref name="referenceName"/>, or <see langword="null"/> if it does not exist.</summary> IReference? this[ReferenceName referenceName] { get; } + + /// <summary>Creates a new reference named <paramref name="name"/> pointing to <paramref name="canonicalRefNameOrObject"/>.</summary> void Add(string name, string canonicalRefNameOrObject, bool allowOverwrite = false); + + /// <summary>Updates the target of the direct reference <paramref name="directRef"/> to point to <paramref name="targetId"/>.</summary> void UpdateTarget(IReference directRef, IObjectId targetId); + + /// <summary>Returns all references whose canonical names start with <paramref name="prefix"/>.</summary> IEnumerable<IReference> FromGlob(string prefix); } diff --git a/src/GitVersion.Core/Git/IRemote.cs b/src/GitVersion.Core/Git/IRemote.cs index 43faeac942..b026609236 100644 --- a/src/GitVersion.Core/Git/IRemote.cs +++ b/src/GitVersion.Core/Git/IRemote.cs @@ -1,10 +1,17 @@ namespace GitVersion.Git; +/// <summary>Represents a configured Git remote.</summary> public interface IRemote : IEquatable<IRemote?>, IComparable<IRemote> { + /// <summary>Gets the short name of the remote (e.g. <c>origin</c>).</summary> string Name { get; } + + /// <summary>Gets the URL of the remote repository.</summary> string Url { get; } + /// <summary>Gets the refspecs used when fetching from this remote.</summary> IEnumerable<IRefSpec> FetchRefSpecs { get; } + + /// <summary>Gets the refspecs used when pushing to this remote.</summary> IEnumerable<IRefSpec> PushRefSpecs { get; } } diff --git a/src/GitVersion.Core/Git/IRemoteCollection.cs b/src/GitVersion.Core/Git/IRemoteCollection.cs index 531eee8546..ecbb0ac605 100644 --- a/src/GitVersion.Core/Git/IRemoteCollection.cs +++ b/src/GitVersion.Core/Git/IRemoteCollection.cs @@ -1,8 +1,14 @@ namespace GitVersion.Git; +/// <summary>Represents the set of remotes configured for a Git repository.</summary> public interface IRemoteCollection : IEnumerable<IRemote> { + /// <summary>Returns the remote with the given <paramref name="name"/>, or <see langword="null"/> if it does not exist.</summary> IRemote? this[string name] { get; } + + /// <summary>Removes the remote identified by <paramref name="remoteName"/> from the repository configuration.</summary> void Remove(string remoteName); + + /// <summary>Adds or updates the fetch refspec for the remote identified by <paramref name="remoteName"/>.</summary> void Update(string remoteName, string refSpec); } diff --git a/src/GitVersion.Core/Git/ITag.cs b/src/GitVersion.Core/Git/ITag.cs index c37dec97f4..e39005cf8f 100644 --- a/src/GitVersion.Core/Git/ITag.cs +++ b/src/GitVersion.Core/Git/ITag.cs @@ -1,8 +1,11 @@ namespace GitVersion.Git; +/// <summary>Represents a Git tag (lightweight or annotated).</summary> public interface ITag : IEquatable<ITag?>, IComparable<ITag>, INamedReference { + /// <summary>Gets the SHA of the object that this tag directly points to (the tag object SHA for annotated tags, or the commit SHA for lightweight tags).</summary> string TargetSha { get; } + /// <summary>Gets the commit that this tag ultimately resolves to.</summary> ICommit Commit { get; } } diff --git a/src/GitVersion.Core/Git/ITagCollection.cs b/src/GitVersion.Core/Git/ITagCollection.cs index 3065430e39..ac652a2eed 100644 --- a/src/GitVersion.Core/Git/ITagCollection.cs +++ b/src/GitVersion.Core/Git/ITagCollection.cs @@ -1,3 +1,4 @@ namespace GitVersion.Git; +/// <summary>Represents the set of all tags in a Git repository.</summary> public interface ITagCollection : IEnumerable<ITag>; diff --git a/src/GitVersion.Core/Git/ITreeChanges.cs b/src/GitVersion.Core/Git/ITreeChanges.cs index 28a4600d68..a6ccab9f95 100644 --- a/src/GitVersion.Core/Git/ITreeChanges.cs +++ b/src/GitVersion.Core/Git/ITreeChanges.cs @@ -1,6 +1,8 @@ namespace GitVersion.Git; +/// <summary>Represents the set of file paths changed between two tree objects.</summary> public interface ITreeChanges { + /// <summary>Gets the paths of all files that were added, modified, or deleted.</summary> IReadOnlyList<string> Paths { get; } } diff --git a/src/GitVersion.Core/Git/RefSpecDirection.cs b/src/GitVersion.Core/Git/RefSpecDirection.cs index 97070104f8..b7af46d05b 100644 --- a/src/GitVersion.Core/Git/RefSpecDirection.cs +++ b/src/GitVersion.Core/Git/RefSpecDirection.cs @@ -1,7 +1,11 @@ namespace GitVersion.Git; +/// <summary>Indicates the direction of a refspec mapping.</summary> public enum RefSpecDirection { + /// <summary>The refspec is used when fetching from a remote.</summary> Fetch, + + /// <summary>The refspec is used when pushing to a remote.</summary> Push } diff --git a/src/GitVersion.Core/Git/ReferenceName.cs b/src/GitVersion.Core/Git/ReferenceName.cs index 9686a0a22a..477d5c4bf0 100644 --- a/src/GitVersion.Core/Git/ReferenceName.cs +++ b/src/GitVersion.Core/Git/ReferenceName.cs @@ -4,12 +4,16 @@ namespace GitVersion.Git; +/// <summary>Represents a Git reference name in both its canonical (<c>refs/heads/main</c>) and friendly (<c>main</c>) forms.</summary> public class ReferenceName : IEquatable<ReferenceName?>, IComparable<ReferenceName> { private static readonly LambdaEqualityHelper<ReferenceName> equalityHelper = new(x => x.Canonical); private static readonly LambdaKeyComparer<ReferenceName, string> comparerHelper = new(x => x.Canonical); + /// <summary>The canonical prefix for local branches.</summary> public const string LocalBranchPrefix = "refs/heads/"; + + /// <summary>The canonical prefix for remote-tracking branches.</summary> public const string RemoteTrackingBranchPrefix = "refs/remotes/"; private const string TagPrefix = "refs/tags/"; private const string OriginPrefix = "origin/"; @@ -22,6 +26,7 @@ public class ReferenceName : IEquatable<ReferenceName?>, IComparable<ReferenceNa "refs/remotes/pull-requests/" ]; + /// <summary>Initializes a new <see cref="ReferenceName"/> from its canonical form.</summary> public ReferenceName(string canonical) { Canonical = canonical.NotNull(); @@ -35,41 +40,56 @@ public ReferenceName(string canonical) WithoutOrigin = RemoveOrigin(); } + /// <summary>Parses <paramref name="canonicalName"/> as a canonical Git reference name, throwing when the input is not a valid canonical form.</summary> public static ReferenceName Parse(string canonicalName) { if (TryParse(out var value, canonicalName)) return value; throw new ArgumentException($"The {nameof(canonicalName)} is not a Canonical name"); } + /// <summary>Creates a <see cref="ReferenceName"/> from a branch name, automatically prepending the local-branch prefix when necessary.</summary> public static ReferenceName FromBranchName(string branchName) => TryParse(out var value, branchName) ? value : Parse(LocalBranchPrefix + branchName); + /// <summary>Gets the canonical reference name (e.g. <c>refs/heads/main</c>).</summary> public string Canonical { get; } + /// <summary>Gets the shortened, human-readable reference name (e.g. <c>main</c> or <c>origin/main</c>).</summary> public string Friendly { get; } + /// <summary>Gets the friendly name with the <c>origin/</c> prefix removed for remote-tracking branches.</summary> public string WithoutOrigin { get; } + /// <summary>Gets a value indicating whether this is a local branch reference.</summary> public bool IsLocalBranch { get; } + /// <summary>Gets a value indicating whether this is a remote-tracking branch reference.</summary> public bool IsRemoteBranch { get; } + /// <summary>Gets a value indicating whether this is a tag reference.</summary> public bool IsTag { get; } + /// <summary>Gets a value indicating whether this reference corresponds to a pull request.</summary> public bool IsPullRequest { get; } + /// <summary>Returns <see langword="true"/> when the canonical name of this instance equals that of <paramref name="other"/>.</summary> public bool Equals(ReferenceName? other) => equalityHelper.Equals(this, other); + /// <summary>Compares this instance to <paramref name="other"/> by canonical name.</summary> public int CompareTo(ReferenceName? other) => comparerHelper.Compare(this, other); + /// <summary>Returns <see langword="true"/> when <paramref name="obj"/> is a <see cref="ReferenceName"/> with the same canonical name.</summary> public override bool Equals(object? obj) => Equals(obj as ReferenceName); + /// <summary>Returns a hash code based on the canonical name.</summary> public override int GetHashCode() => equalityHelper.GetHashCode(this); + /// <summary>Returns the friendly (shortened) name of this reference.</summary> public override string ToString() => Friendly; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> have equal canonical names.</summary> public static bool operator ==(ReferenceName? left, ReferenceName? right) { if (ReferenceEquals(left, right)) return true; @@ -77,8 +97,10 @@ public static ReferenceName FromBranchName(string branchName) return left.Equals(right); } + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> have different canonical names.</summary> public static bool operator !=(ReferenceName? left, ReferenceName? right) => !(left == right); + /// <summary>Returns <see langword="true"/> when <paramref name="name"/> matches any of the canonical, friendly, or origin-stripped forms of this reference.</summary> public bool EquivalentTo(string? name) => Canonical.Equals(name, StringComparison.OrdinalIgnoreCase) || Friendly.Equals(name, StringComparison.OrdinalIgnoreCase) diff --git a/src/GitVersion.Core/GitVersionCommonModule.cs b/src/GitVersion.Core/GitVersionCommonModule.cs index 8f4376b33e..cf9e1f0a9c 100644 --- a/src/GitVersion.Core/GitVersionCommonModule.cs +++ b/src/GitVersion.Core/GitVersionCommonModule.cs @@ -4,8 +4,10 @@ namespace GitVersion; +/// <summary>Registers common infrastructure services such as logging, file system, environment, and build-agent resolution.</summary> public class GitVersionCommonModule : IGitVersionModule { + /// <summary>Registers the common infrastructure services into the DI container.</summary> public void RegisterTypes(IServiceCollection services) { services.AddSingleton<ILog, Log>(); diff --git a/src/GitVersion.Core/GitVersionContext.cs b/src/GitVersion.Core/GitVersionContext.cs index 7264abe4c5..a35ec13745 100644 --- a/src/GitVersion.Core/GitVersionContext.cs +++ b/src/GitVersion.Core/GitVersionContext.cs @@ -19,13 +19,18 @@ public class GitVersionContext( /// </summary> public IGitVersionConfiguration Configuration { get; } = configuration.NotNull(); + /// <summary>Gets the branch currently being versioned.</summary> public IBranch CurrentBranch { get; } = currentBranch.NotNull(); + /// <summary>Gets the commits on the current branch that were authored before the current commit.</summary> public IEnumerable<ICommit> CurrentBranchCommits => CurrentBranch.Commits.GetCommitsPriorTo(CurrentCommit.When); + /// <summary>Gets the commit being versioned.</summary> public ICommit CurrentCommit { get; } = currentCommit.NotNull(); + /// <summary>Gets a value indicating whether the current commit has an exact-match version tag.</summary> public bool IsCurrentCommitTagged { get; } = isCurrentCommitTagged; + /// <summary>Gets the number of files that have been modified but not yet committed.</summary> public int NumberOfUncommittedChanges { get; } = numberOfUncommittedChanges; } diff --git a/src/GitVersion.Core/GitVersionCoreModule.cs b/src/GitVersion.Core/GitVersionCoreModule.cs index 3a51335d5e..815d97e1f0 100644 --- a/src/GitVersion.Core/GitVersionCoreModule.cs +++ b/src/GitVersion.Core/GitVersionCoreModule.cs @@ -6,8 +6,10 @@ namespace GitVersion; +/// <summary>Registers the core GitVersion services including version calculation, repository access, and caching.</summary> public class GitVersionCoreModule : IGitVersionModule { + /// <summary>Registers all core services into the DI container.</summary> public void RegisterTypes(IServiceCollection services) { services.AddSingleton<IGitVersionCacheProvider, GitVersionCacheProvider>(); diff --git a/src/GitVersion.Core/Helpers/Disposable.cs b/src/GitVersion.Core/Helpers/Disposable.cs index f253bef4ef..57a23b62a7 100644 --- a/src/GitVersion.Core/Helpers/Disposable.cs +++ b/src/GitVersion.Core/Helpers/Disposable.cs @@ -2,11 +2,16 @@ namespace GitVersion.Helpers; +/// <summary>Factory methods for creating lightweight <see cref="IDisposable"/> wrappers around cleanup actions.</summary> public static class Disposable { + /// <summary>Creates an <see cref="IDisposable"/> that invokes <paramref name="disposer"/> when disposed.</summary> public static IDisposable Create(Action disposer) => new AnonymousDisposable(disposer); + + /// <summary>Creates an <see cref="IDisposable{T}"/> that holds <paramref name="value"/> and invokes <paramref name="disposer"/> when disposed.</summary> public static IDisposable<T> Create<T>(T value, Action disposer) => new AnonymousDisposable<T>(value, disposer); + /// <summary>A no-op disposable that does nothing when disposed.</summary> public static readonly IDisposable Empty = Create(() => { }); private sealed class AnonymousDisposable(Action disposer) : IDisposable @@ -33,7 +38,9 @@ public void Dispose() } } +/// <summary>An <see cref="IDisposable"/> that also exposes a value of type <typeparamref name="T"/>.</summary> public interface IDisposable<out T> : IDisposable { + /// <summary>Gets the value held by this disposable wrapper.</summary> T Value { get; } } diff --git a/src/GitVersion.Core/Helpers/LambdaEqualityHelper.cs b/src/GitVersion.Core/Helpers/LambdaEqualityHelper.cs index 15d1b7ad9a..087b0402d9 100644 --- a/src/GitVersion.Core/Helpers/LambdaEqualityHelper.cs +++ b/src/GitVersion.Core/Helpers/LambdaEqualityHelper.cs @@ -3,8 +3,11 @@ namespace GitVersion.Helpers; // From the LibGit2Sharp project (libgit2sharp.com) // MIT License - Copyright (c) 2011-2014 LibGit2Sharp contributors // see https://github.com/libgit2/libgit2sharp/blob/7af5c60f22f9bd6064204f84467cfa62bedd1147/LibGit2Sharp/Core/LambdaEqualityHelper.cs + +/// <summary>Provides equality and hash-code implementation for <typeparamref name="T"/> based on a set of key-selector functions.</summary> public class LambdaEqualityHelper<T>(params Func<T, object?>[] equalityContributorAccessors) { + /// <summary>Returns <see langword="true"/> when <paramref name="instance"/> and <paramref name="other"/> are equal according to all registered key selectors.</summary> public bool Equals(T? instance, T? other) { if (instance is null || other is null) @@ -20,6 +23,7 @@ public bool Equals(T? instance, T? other) return instance.GetType() == other.GetType() && equalityContributorAccessors.All(accessor => Equals(accessor(instance), accessor(other))); } + /// <summary>Computes a hash code for <paramref name="instance"/> by combining the hash codes of all registered keys.</summary> public int GetHashCode(T instance) { var hashCode = GetType().GetHashCode(); diff --git a/src/GitVersion.Core/Helpers/LambdaKeyComparer.cs b/src/GitVersion.Core/Helpers/LambdaKeyComparer.cs index e5ff678e55..6ea436f6fa 100644 --- a/src/GitVersion.Core/Helpers/LambdaKeyComparer.cs +++ b/src/GitVersion.Core/Helpers/LambdaKeyComparer.cs @@ -1,5 +1,6 @@ namespace GitVersion.Helpers; +/// <summary>A <see cref="Comparer{T}"/> that delegates comparison to a key-selector function, with an optional inner comparer for the key type.</summary> public class LambdaKeyComparer<TSource, TKey>( Func<TSource, TKey> keySelector, IComparer<TKey>? innerComparer = null) @@ -8,6 +9,7 @@ public class LambdaKeyComparer<TSource, TKey>( { private readonly IComparer<TKey> innerComparer = innerComparer ?? Comparer<TKey>.Default; + /// <summary>Compares <paramref name="x"/> and <paramref name="y"/> by applying the key selector and delegating to the inner comparer.</summary> public override int Compare(TSource? x, TSource? y) { if (ReferenceEquals(x, y)) diff --git a/src/GitVersion.Core/Helpers/RetryAction.cs b/src/GitVersion.Core/Helpers/RetryAction.cs index 0365fb8061..97f4162ad6 100644 --- a/src/GitVersion.Core/Helpers/RetryAction.cs +++ b/src/GitVersion.Core/Helpers/RetryAction.cs @@ -3,19 +3,24 @@ namespace GitVersion.Helpers; +/// <summary>Executes an action with automatic linear-backoff retries when a <typeparamref name="T"/> exception is thrown, discarding the return value.</summary> public class RetryAction<T>(int maxRetries = 5) : RetryAction<T, bool>(maxRetries) where T : Exception { + /// <summary>Executes <paramref name="operation"/>, retrying on <typeparamref name="T"/> up to the configured maximum number of times.</summary> public void Execute(Action operation) => base.Execute(() => { operation(); return false; }); } + +/// <summary>Executes a function with automatic linear-backoff retries when a <typeparamref name="T"/> exception is thrown.</summary> public class RetryAction<T, Result> where T : Exception { private readonly RetryPolicy<Result> retryPolicy; + /// <summary>Initializes a new retry handler that retries up to <paramref name="maxRetries"/> times with a linear backoff starting at 100 ms.</summary> public RetryAction(int maxRetries = 5) { ArgumentOutOfRangeException.ThrowIfNegative(maxRetries); @@ -26,6 +31,7 @@ public RetryAction(int maxRetries = 5) .WaitAndRetry(linearBackoff); } + /// <summary>Executes <paramref name="operation"/>, retrying on <typeparamref name="T"/> according to the configured policy.</summary> public Result Execute(Func<Result> operation) => this.retryPolicy.Execute(operation); private static IEnumerable<TimeSpan> LinearBackoff(TimeSpan initialDelay, int retryCount, double factor = 1.0, bool fastFirst = false) diff --git a/src/GitVersion.Core/Helpers/ServiceMessageEscapeHelper.cs b/src/GitVersion.Core/Helpers/ServiceMessageEscapeHelper.cs index 4e77485571..028daecf21 100644 --- a/src/GitVersion.Core/Helpers/ServiceMessageEscapeHelper.cs +++ b/src/GitVersion.Core/Helpers/ServiceMessageEscapeHelper.cs @@ -1,7 +1,9 @@ namespace GitVersion.Helpers; +/// <summary>Escapes special characters in values written to TeamCity service messages.</summary> public static class ServiceMessageEscapeHelper { + /// <summary>Returns <paramref name="value"/> with TeamCity service-message special characters escaped, or <see langword="null"/> when <paramref name="value"/> is <see langword="null"/>.</summary> public static string? EscapeValue(string? value) { if (value == null) diff --git a/src/GitVersion.Core/Logging/Abstractions/IConsole.cs b/src/GitVersion.Core/Logging/Abstractions/IConsole.cs index fcd934d0b8..765b67d4da 100644 --- a/src/GitVersion.Core/Logging/Abstractions/IConsole.cs +++ b/src/GitVersion.Core/Logging/Abstractions/IConsole.cs @@ -1,9 +1,17 @@ namespace GitVersion.Logging; +/// <summary>Provides console I/O operations used by GitVersion's logging infrastructure.</summary> public interface IConsole { + /// <summary>Writes <paramref name="msg"/> followed by a newline to the console.</summary> void WriteLine(string? msg); + + /// <summary>Writes <paramref name="msg"/> to the console without a trailing newline.</summary> void Write(string? msg); + + /// <summary>Reads a line of text from the console.</summary> string? ReadLine(); + + /// <summary>Returns a disposable that sets the console foreground colour to <paramref name="consoleColor"/> and restores the previous colour when disposed.</summary> IDisposable UseColor(ConsoleColor consoleColor); } diff --git a/src/GitVersion.Core/Logging/Abstractions/ILog.cs b/src/GitVersion.Core/Logging/Abstractions/ILog.cs index e152c489cb..d4c449ace2 100644 --- a/src/GitVersion.Core/Logging/Abstractions/ILog.cs +++ b/src/GitVersion.Core/Logging/Abstractions/ILog.cs @@ -1,10 +1,20 @@ namespace GitVersion.Logging; +/// <summary>Provides structured logging for GitVersion, supporting multiple verbosity levels and pluggable appenders.</summary> public interface ILog { + /// <summary>Gets or sets the minimum verbosity level at which messages are written.</summary> Verbosity Verbosity { get; set; } + + /// <summary>Writes a formatted log message at the given <paramref name="verbosity"/> and <paramref name="level"/>.</summary> void Write(Verbosity verbosity, LogLevel level, string format, params object?[] args); + + /// <summary>Returns a disposable scope that indents subsequent log output and labels it with <paramref name="operationDescription"/>.</summary> IDisposable IndentLog(string operationDescription); + + /// <summary>Registers an additional <see cref="ILogAppender"/> that will receive all log messages.</summary> void AddLogAppender(ILogAppender logAppender); + + /// <summary>Writes a visual separator line to the log output.</summary> void Separator(); } diff --git a/src/GitVersion.Core/Logging/Abstractions/ILogAppender.cs b/src/GitVersion.Core/Logging/Abstractions/ILogAppender.cs index 3cb255f142..4209d31539 100644 --- a/src/GitVersion.Core/Logging/Abstractions/ILogAppender.cs +++ b/src/GitVersion.Core/Logging/Abstractions/ILogAppender.cs @@ -1,6 +1,8 @@ namespace GitVersion.Logging; +/// <summary>Receives log messages forwarded by the <see cref="ILog"/> implementation, allowing custom sinks (e.g. file, build-agent output).</summary> public interface ILogAppender { + /// <summary>Writes <paramref name="message"/> at the given <paramref name="level"/> to this appender's destination.</summary> void WriteTo(LogLevel level, string message); } diff --git a/src/GitVersion.Core/Logging/LogAction.cs b/src/GitVersion.Core/Logging/LogAction.cs index e0076f856e..4b26380073 100644 --- a/src/GitVersion.Core/Logging/LogAction.cs +++ b/src/GitVersion.Core/Logging/LogAction.cs @@ -1,5 +1,7 @@ namespace GitVersion.Logging; +/// <summary>A delegate that receives a <see cref="LogActionEntry"/> callback used to lazily compose a log message.</summary> public delegate void LogAction(LogActionEntry actionEntry); +/// <summary>A delegate that formats and writes a log message using the supplied format string and arguments.</summary> public delegate void LogActionEntry(string format, params object[] args); diff --git a/src/GitVersion.Core/Logging/LogExtensions.cs b/src/GitVersion.Core/Logging/LogExtensions.cs index 6db7a9cd77..70e407bcc6 100644 --- a/src/GitVersion.Core/Logging/LogExtensions.cs +++ b/src/GitVersion.Core/Logging/LogExtensions.cs @@ -2,29 +2,50 @@ namespace GitVersion.Logging; +/// <summary>Extension methods on <see cref="ILog"/> that provide level-specific logging helpers (<c>Debug</c>, <c>Info</c>, <c>Warning</c>, <c>Error</c>) and verbosity-scope methods.</summary> public static class LogExtensions { extension(ILog log) { + /// <summary>Writes a debug-level message.</summary> public void Debug(string format, params object?[] args) => log.Write(LogLevel.Debug, format, args); + /// <summary>Writes a debug-level message at an explicit verbosity.</summary> public void Debug(Verbosity verbosity, string format, params object?[] args) => log.Write(verbosity, LogLevel.Debug, format, args); + /// <summary>Writes a debug-level message produced by a lazy <see cref="LogAction"/>.</summary> public void Debug(LogAction logAction) => log.Write(LogLevel.Debug, logAction); + /// <summary>Writes a debug-level message produced by a lazy <see cref="LogAction"/> at an explicit verbosity.</summary> public void Debug(Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Debug, logAction); + /// <summary>Writes a warning-level message.</summary> public void Warning(string format, params object?[] args) => log.Write(LogLevel.Warn, format, args); + /// <summary>Writes a warning-level message at an explicit verbosity.</summary> public void Warning(Verbosity verbosity, string format, params object?[] args) => log.Write(verbosity, LogLevel.Warn, format, args); + /// <summary>Writes a warning-level message produced by a lazy <see cref="LogAction"/>.</summary> public void Warning(LogAction logAction) => log.Write(LogLevel.Warn, logAction); + /// <summary>Writes a warning-level message produced by a lazy <see cref="LogAction"/> at an explicit verbosity.</summary> public void Warning(Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Warn, logAction); + /// <summary>Writes an informational message.</summary> public void Info(string format, params object?[] args) => log.Write(LogLevel.Info, format, args); + /// <summary>Writes an informational message at an explicit verbosity.</summary> public void Info(Verbosity verbosity, string format, params object?[] args) => log.Write(verbosity, LogLevel.Info, format, args); + /// <summary>Writes an informational message produced by a lazy <see cref="LogAction"/>.</summary> public void Info(LogAction logAction) => log.Write(LogLevel.Info, logAction); + /// <summary>Writes an informational message produced by a lazy <see cref="LogAction"/> at an explicit verbosity.</summary> public void Info(Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Info, logAction); + /// <summary>Writes a verbose-level message.</summary> public void Verbose(string format, params object?[] args) => log.Write(LogLevel.Verbose, format, args); + /// <summary>Writes a verbose-level message at an explicit verbosity.</summary> public void Verbose(Verbosity verbosity, string format, params object?[] args) => log.Write(verbosity, LogLevel.Verbose, format, args); + /// <summary>Writes a verbose-level message produced by a lazy <see cref="LogAction"/>.</summary> public void Verbose(LogAction logAction) => log.Write(LogLevel.Verbose, logAction); + /// <summary>Writes a verbose-level message produced by a lazy <see cref="LogAction"/> at an explicit verbosity.</summary> public void Verbose(Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Verbose, logAction); + /// <summary>Writes an error-level message.</summary> public void Error(string format, params object?[] args) => log.Write(LogLevel.Error, format, args); + /// <summary>Writes an error-level message at an explicit verbosity.</summary> public void Error(Verbosity verbosity, string format, params object?[] args) => log.Write(verbosity, LogLevel.Error, format, args); + /// <summary>Writes an error-level message produced by a lazy <see cref="LogAction"/>.</summary> public void Error(LogAction logAction) => log.Write(LogLevel.Error, logAction); + /// <summary>Writes an error-level message produced by a lazy <see cref="LogAction"/> at an explicit verbosity.</summary> public void Error(Verbosity verbosity, LogAction logAction) => log.Write(verbosity, LogLevel.Error, logAction); private void Write(LogLevel level, string format, params object?[] args) @@ -71,10 +92,15 @@ private void Write(LogLevel level, LogAction? logAction) void ActionEntry(string format, object[] args) => log.Write(verbosity, level, format, args); } + /// <summary>Returns a scope that temporarily sets the log verbosity to <see cref="Verbosity.Quiet"/>.</summary> public IDisposable QuietVerbosity() => log.WithVerbosity(Verbosity.Quiet); + /// <summary>Returns a scope that temporarily sets the log verbosity to <see cref="Verbosity.Minimal"/>.</summary> public IDisposable MinimalVerbosity() => log.WithVerbosity(Verbosity.Minimal); + /// <summary>Returns a scope that temporarily sets the log verbosity to <see cref="Verbosity.Normal"/>.</summary> public IDisposable NormalVerbosity() => log.WithVerbosity(Verbosity.Normal); + /// <summary>Returns a scope that temporarily sets the log verbosity to <see cref="Verbosity.Verbose"/>.</summary> public IDisposable VerboseVerbosity() => log.WithVerbosity(Verbosity.Verbose); + /// <summary>Returns a scope that temporarily sets the log verbosity to <see cref="Verbosity.Diagnostic"/>.</summary> public IDisposable DiagnosticVerbosity() => log.WithVerbosity(Verbosity.Diagnostic); private IDisposable WithVerbosity(Verbosity verbosity) diff --git a/src/GitVersion.Core/Logging/LogLevel.cs b/src/GitVersion.Core/Logging/LogLevel.cs index 90f538bd1b..4c8555118c 100644 --- a/src/GitVersion.Core/Logging/LogLevel.cs +++ b/src/GitVersion.Core/Logging/LogLevel.cs @@ -1,11 +1,23 @@ namespace GitVersion.Logging; +/// <summary>Defines the severity levels used when writing log messages.</summary> public enum LogLevel { + /// <summary>The application cannot continue and must terminate.</summary> Fatal, + + /// <summary>A serious failure occurred that may be recoverable.</summary> Error, + + /// <summary>An unexpected but non-fatal situation that deserves attention.</summary> Warn, + + /// <summary>General informational output about normal operation.</summary> Info, + + /// <summary>Detailed diagnostic output useful for troubleshooting.</summary> Verbose, + + /// <summary>Very detailed low-level diagnostic output, typically only useful during development.</summary> Debug } diff --git a/src/GitVersion.Core/MergeMessage.cs b/src/GitVersion.Core/MergeMessage.cs index 7a0ffda7e2..c3576aa57c 100644 --- a/src/GitVersion.Core/MergeMessage.cs +++ b/src/GitVersion.Core/MergeMessage.cs @@ -7,6 +7,7 @@ namespace GitVersion; +/// <summary>Parses the message of a merge commit to extract the merged branch name, target branch, pull-request number, and embedded semantic version.</summary> public class MergeMessage { private static readonly IList<(string Name, Regex Pattern)> DefaultFormats = @@ -21,6 +22,7 @@ public class MergeMessage new("AzureDevOpsPull", RegexPatterns.MergeMessage.AzureDevOpsPullMergeMessageRegex) ]; + /// <summary>Parses <paramref name="mergeMessage"/> using the configured and built-in merge message formats.</summary> public MergeMessage(string mergeMessage, IGitVersionConfiguration configuration) { mergeMessage.NotNull(); @@ -59,12 +61,22 @@ public MergeMessage(string mergeMessage, IGitVersionConfiguration configuration) } } + /// <summary>Gets the name of the merge message format pattern that was matched, or <see langword="null"/> if none matched.</summary> public string? FormatName { get; } + + /// <summary>Gets the name of the branch that was the merge target, or <see langword="null"/> if not captured.</summary> public string? TargetBranch { get; } + + /// <summary>Gets the reference name of the branch that was merged in, or <see langword="null"/> if not captured.</summary> public ReferenceName? MergedBranch { get; } + /// <summary>Gets a value indicating whether this merge message represents a merged pull request.</summary> public bool IsMergedPullRequest => PullRequestNumber != null; + + /// <summary>Gets the pull-request number extracted from the merge message, or <see langword="null"/> if this is not a pull-request merge.</summary> public int? PullRequestNumber { get; } + + /// <summary>Gets the semantic version embedded in the merged branch name, or <see langword="null"/> if none was found.</summary> public SemanticVersion? Version { get; } private ReferenceName GetMergedBranchName(string mergedBranch) @@ -76,6 +88,7 @@ private ReferenceName GetMergedBranchName(string mergedBranch) return ReferenceName.FromBranchName(mergedBranch); } + /// <summary>Attempts to parse a valid merge message from <paramref name="mergeCommit"/>, setting <paramref name="mergeMessage"/> when successful.</summary> public static bool TryParse( ICommit mergeCommit, IGitVersionConfiguration configuration, [NotNullWhen(true)] out MergeMessage? mergeMessage) { diff --git a/src/GitVersion.Core/Options/AssemblySettingsInfo.cs b/src/GitVersion.Core/Options/AssemblySettingsInfo.cs index 6ebecfc00f..318c0bc4fa 100644 --- a/src/GitVersion.Core/Options/AssemblySettingsInfo.cs +++ b/src/GitVersion.Core/Options/AssemblySettingsInfo.cs @@ -1,9 +1,17 @@ namespace GitVersion; +/// <summary>Contains options that control how GitVersion updates assembly version attributes and project files.</summary> public class AssemblySettingsInfo { + /// <summary>Gets or sets a value indicating whether <c>AssemblyInfo.cs</c> files should be updated with the calculated version.</summary> public bool UpdateAssemblyInfo; + + /// <summary>Gets or sets a value indicating whether SDK-style project files (<c>.csproj</c>) should be updated with the calculated version.</summary> public bool UpdateProjectFiles; + + /// <summary>Gets or sets a value indicating whether missing <c>AssemblyInfo.cs</c> files should be created automatically.</summary> public bool EnsureAssemblyInfo; + + /// <summary>Gets or sets the set of specific assembly-info or project file paths to update.</summary> public ISet<string> Files = new HashSet<string>(); } diff --git a/src/GitVersion.Core/Options/ConfigurationInfo.cs b/src/GitVersion.Core/Options/ConfigurationInfo.cs index a7e19756de..d17dc0d410 100644 --- a/src/GitVersion.Core/Options/ConfigurationInfo.cs +++ b/src/GitVersion.Core/Options/ConfigurationInfo.cs @@ -1,8 +1,14 @@ namespace GitVersion; +/// <summary>Holds options that control how the GitVersion configuration file is located and applied.</summary> public record ConfigurationInfo { + /// <summary>Gets or sets an explicit path to the GitVersion configuration file, overriding automatic discovery.</summary> public string? ConfigurationFile; + + /// <summary>Gets or sets a value indicating whether the effective configuration should be printed to the output.</summary> public bool ShowConfiguration; + + /// <summary>Gets or sets a dictionary of key/value pairs that override specific configuration values at runtime.</summary> public IReadOnlyDictionary<object, object?>? OverrideConfiguration; } diff --git a/src/GitVersion.Core/Options/FileWriteInfo.cs b/src/GitVersion.Core/Options/FileWriteInfo.cs index 7a81b8b411..702248a1c6 100644 --- a/src/GitVersion.Core/Options/FileWriteInfo.cs +++ b/src/GitVersion.Core/Options/FileWriteInfo.cs @@ -1,3 +1,4 @@ namespace GitVersion; +/// <summary>Describes the working directory and file name details for writing version output to a file.</summary> public sealed record FileWriteInfo(string WorkingDirectory, string FileName, string FileExtension); diff --git a/src/GitVersion.Core/Options/GitVersionOptions.cs b/src/GitVersion.Core/Options/GitVersionOptions.cs index 1fc689dbd7..9c5f2762c0 100644 --- a/src/GitVersion.Core/Options/GitVersionOptions.cs +++ b/src/GitVersion.Core/Options/GitVersionOptions.cs @@ -3,25 +3,54 @@ namespace GitVersion; +/// <summary>Top-level options object that aggregates all settings used to configure a GitVersion execution.</summary> public class GitVersionOptions { + /// <summary>Gets or sets the working directory from which GitVersion should operate.</summary> public string WorkingDirectory { get; set; } = SysEnv.CurrentDirectory; + + /// <summary>Gets the assembly-update settings.</summary> public AssemblySettingsInfo AssemblySettingsInfo { get; } = new(); + + /// <summary>Gets the credentials used when authenticating with a remote repository.</summary> public AuthenticationInfo AuthenticationInfo { get; } = new(); + /// <summary>Gets the settings that control how the GitVersion configuration file is located and applied.</summary> public ConfigurationInfo ConfigurationInfo { get; } = new(); + + /// <summary>Gets the repository-targeting settings (URL, branch, commit, clone path).</summary> public RepositoryInfo RepositoryInfo { get; } = new(); + + /// <summary>Gets the WiX-specific version-file update settings.</summary> public WixInfo WixInfo { get; } = new(); + + /// <summary>Gets the general runtime behaviour settings (cache, fetch, normalise).</summary> public Settings Settings { get; } = new(); + /// <summary>Gets or sets a value indicating whether extended diagnostic output should be emitted.</summary> public bool Diag; + + /// <summary>Gets or sets a value indicating whether the GitVersion version number should be printed and execution should stop.</summary> public bool IsVersion; + + /// <summary>Gets or sets a value indicating whether help text should be printed and execution should stop.</summary> public bool IsHelp; + /// <summary>Gets or sets the path to a file where log output should be written.</summary> public string? LogFilePath; + + /// <summary>Gets or sets the name of a single version variable to output.</summary> public string? ShowVariable; + + /// <summary>Gets or sets the output format string used when writing a single variable.</summary> public string? Format; + + /// <summary>Gets or sets the path of the file to which version output is written when the <see cref="OutputType.File"/> output type is selected.</summary> public string? OutputFile; + + /// <summary>Gets or sets the set of output types to produce (JSON, build-server, file, dotenv).</summary> public ISet<OutputType> Output = new HashSet<OutputType>(); + + /// <summary>Gets or sets the minimum log verbosity level.</summary> public Verbosity Verbosity = Verbosity.Normal; } diff --git a/src/GitVersion.Core/Options/OutputType.cs b/src/GitVersion.Core/Options/OutputType.cs index 3ad1b04d94..afdea677b7 100644 --- a/src/GitVersion.Core/Options/OutputType.cs +++ b/src/GitVersion.Core/Options/OutputType.cs @@ -1,9 +1,17 @@ namespace GitVersion; +/// <summary>Specifies the format in which GitVersion outputs version variables.</summary> public enum OutputType { + /// <summary>Writes version variables to the CI build server's environment (e.g. TeamCity build parameters, GitHub Actions outputs).</summary> BuildServer, + + /// <summary>Writes version variables as a JSON object to standard output.</summary> Json, + + /// <summary>Writes version variables to a file on disk.</summary> File, + + /// <summary>Writes version variables in the <c>KEY=value</c> dotenv format.</summary> DotEnv } diff --git a/src/GitVersion.Core/Options/RepositoryInfo.cs b/src/GitVersion.Core/Options/RepositoryInfo.cs index 4551ff8e11..f19e8c7be6 100644 --- a/src/GitVersion.Core/Options/RepositoryInfo.cs +++ b/src/GitVersion.Core/Options/RepositoryInfo.cs @@ -1,9 +1,17 @@ namespace GitVersion; +/// <summary>Identifies the remote repository and the specific commit or branch to version.</summary> public record RepositoryInfo { + /// <summary>Gets or sets the URL of the remote repository to clone or fetch from.</summary> public string? TargetUrl; + + /// <summary>Gets or sets the name of the branch to calculate the version for.</summary> public string? TargetBranch; + + /// <summary>Gets or sets a specific commit SHA to use instead of the current HEAD.</summary> public string? CommitId; + + /// <summary>Gets or sets the local path to which the repository should be cloned when using dynamic repositories.</summary> public string? ClonePath; } diff --git a/src/GitVersion.Core/Options/Settings.cs b/src/GitVersion.Core/Options/Settings.cs index cbb9dabc8c..2a12dc006e 100644 --- a/src/GitVersion.Core/Options/Settings.cs +++ b/src/GitVersion.Core/Options/Settings.cs @@ -1,10 +1,20 @@ namespace GitVersion; +/// <summary>Controls general runtime behaviours such as caching, fetching, and branch normalisation.</summary> public record Settings { + /// <summary>Gets or sets a value indicating whether fetching from the remote should be skipped.</summary> public bool NoFetch; + + /// <summary>Gets or sets a value indicating whether the on-disk version cache should be ignored.</summary> public bool NoCache; + + /// <summary>Gets or sets a value indicating whether branch normalisation should be skipped.</summary> public bool NoNormalize; + + /// <summary>Gets or sets a value indicating whether only tracked (remote-tracking) branches are considered during version calculation.</summary> public bool OnlyTrackedBranches = false; + + /// <summary>Gets or sets a value indicating whether GitVersion should continue even when a shallow clone is detected.</summary> public bool AllowShallow = false; } diff --git a/src/GitVersion.Core/Options/WixInfo.cs b/src/GitVersion.Core/Options/WixInfo.cs index 8fa95b2851..6b153ce54e 100644 --- a/src/GitVersion.Core/Options/WixInfo.cs +++ b/src/GitVersion.Core/Options/WixInfo.cs @@ -1,6 +1,8 @@ namespace GitVersion; +/// <summary>Controls WiX installer version file update behaviour.</summary> public record WixInfo { + /// <summary>Gets or sets a value indicating whether the WiX version file should be updated with the calculated version.</summary> public bool UpdateWixVersionFile; } diff --git a/src/GitVersion.Core/Output/IConverterContext.cs b/src/GitVersion.Core/Output/IConverterContext.cs index 94283ad5e6..aa58c51915 100644 --- a/src/GitVersion.Core/Output/IConverterContext.cs +++ b/src/GitVersion.Core/Output/IConverterContext.cs @@ -1,3 +1,4 @@ namespace GitVersion; +/// <summary>Marker interface for context objects passed to <see cref="IVersionConverter{T}"/> implementations.</summary> public interface IConverterContext; diff --git a/src/GitVersion.Core/Output/IVersionConverter.cs b/src/GitVersion.Core/Output/IVersionConverter.cs index 22fdd9a75d..0c20e03a45 100644 --- a/src/GitVersion.Core/Output/IVersionConverter.cs +++ b/src/GitVersion.Core/Output/IVersionConverter.cs @@ -2,7 +2,9 @@ namespace GitVersion; +/// <summary>Converts <see cref="GitVersionVariables"/> to a specific output format (e.g. JSON, environment variables, build-server properties).</summary> public interface IVersionConverter<in T> : IDisposable where T : IConverterContext { + /// <summary>Performs the conversion of <paramref name="variables"/> using the supplied <paramref name="context"/>.</summary> void Execute(GitVersionVariables variables, T context); } diff --git a/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs b/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs index 1ea63bd649..a1a6bce164 100644 --- a/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs +++ b/src/GitVersion.Core/OutputVariables/GitVersionVariables.cs @@ -1,5 +1,6 @@ namespace GitVersion.OutputVariables; +/// <summary>Contains all version variables calculated by GitVersion for a given repository state.</summary> public record GitVersionVariables( string? AssemblySemFileVer, string? AssemblySemVer, @@ -96,9 +97,11 @@ string WeightedPreReleaseNumber { nameof(WeightedPreReleaseNumber), WeightedPreReleaseNumber } }; + /// <summary>Returns an enumerator that iterates over all version variable name/value pairs.</summary> public IEnumerator<KeyValuePair<string, string?>> GetEnumerator() => Instance.GetEnumerator(); IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); + /// <summary>Attempts to retrieve the value of the version variable identified by <paramref name="variable"/>.</summary> public bool TryGetValue(string variable, out string? variableValue) => Instance.TryGetValue(variable, out variableValue); } diff --git a/src/GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs b/src/GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs index 2d20579bb9..6d2c569d33 100644 --- a/src/GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs +++ b/src/GitVersion.Core/OutputVariables/IVersionVariableSerializer.cs @@ -1,8 +1,14 @@ namespace GitVersion.OutputVariables; +/// <summary>Serializes and deserializes <see cref="GitVersionVariables"/> to and from JSON and disk files.</summary> public interface IVersionVariableSerializer { + /// <summary>Serializes <paramref name="gitVersionVariables"/> to a JSON string.</summary> string ToJson(GitVersionVariables gitVersionVariables); + + /// <summary>Deserializes a <see cref="GitVersionVariables"/> instance from the JSON file at <paramref name="filePath"/>.</summary> GitVersionVariables FromFile(string filePath); + + /// <summary>Writes <paramref name="gitVersionVariables"/> as JSON to the file at <paramref name="filePath"/>.</summary> void ToFile(GitVersionVariables gitVersionVariables, string filePath); } diff --git a/src/GitVersion.Core/SemVer/SemanticVersion.cs b/src/GitVersion.Core/SemVer/SemanticVersion.cs index cab2f2cb3b..fa7d17dade 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersion.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersion.cs @@ -5,27 +5,38 @@ namespace GitVersion; +/// <summary>Represents a semantic version with optional pre-release tag and build metadata.</summary> public class SemanticVersion : IFormattable, IComparable<SemanticVersion>, IEquatable<SemanticVersion?> { + /// <summary>A zero-valued semantic version with no pre-release tag or build metadata.</summary> public static readonly SemanticVersion Empty = new(); + /// <summary>Gets or initializes the major version component.</summary> public long Major { get; init; } + /// <summary>Gets or initializes the minor version component.</summary> public long Minor { get; init; } + /// <summary>Gets or initializes the patch version component.</summary> public long Patch { get; init; } + /// <summary>Gets a value indicating whether this version has a pre-release tag.</summary> public bool IsPreRelease => PreReleaseTag.HasTag(); + /// <summary>Gets or initializes the pre-release tag.</summary> public SemanticVersionPreReleaseTag PreReleaseTag { get; init; } + /// <summary>Gets or initializes the build metadata associated with this version.</summary> public SemanticVersionBuildMetaData BuildMetaData { get; init; } + /// <summary>Returns <see langword="true"/> when the pre-release tag name equals <paramref name="value"/> (case-insensitive).</summary> public bool IsLabeledWith(string value) => PreReleaseTag.HasTag() && PreReleaseTag.Name.IsEquivalentTo(value); + /// <summary>Returns <see langword="true"/> when this version is compatible with a branch-specific label check: no tag set, no label supplied, or the label matches.</summary> public bool IsMatchForBranchSpecificLabel(string? value) => (PreReleaseTag.Name.Length == 0 && PreReleaseTag.Number is null) || value is null || IsLabeledWith(value); + /// <summary>Initializes a new semantic version with the given major, minor, and patch values.</summary> public SemanticVersion(long major = 0, long minor = 0, long patch = 0) { this.Major = major; @@ -35,6 +46,7 @@ public SemanticVersion(long major = 0, long minor = 0, long patch = 0) this.BuildMetaData = SemanticVersionBuildMetaData.Empty; } + /// <summary>Initializes a new semantic version as a copy of <paramref name="semanticVersion"/>.</summary> public SemanticVersion(SemanticVersion semanticVersion) { semanticVersion.NotNull(); @@ -47,6 +59,7 @@ public SemanticVersion(SemanticVersion semanticVersion) this.BuildMetaData = semanticVersion.BuildMetaData; } + /// <summary>Returns <see langword="true"/> when this version is equal to <paramref name="obj"/>.</summary> public bool Equals(SemanticVersion? obj) { if (obj == null) @@ -60,8 +73,10 @@ public bool Equals(SemanticVersion? obj) && this.BuildMetaData == obj.BuildMetaData; } + /// <summary>Returns <see langword="true"/> when this instance equals <see cref="Empty"/>.</summary> public bool IsEmpty() => Equals(Empty); + /// <summary>Returns <see langword="true"/> when <paramref name="obj"/> is a <see cref="SemanticVersion"/> equal to this instance.</summary> public override bool Equals(object? obj) { if (obj is null) @@ -75,8 +90,10 @@ public override bool Equals(object? obj) return obj.GetType() == GetType() && Equals((SemanticVersion)obj); } + /// <summary>Returns a hash code combining all version components.</summary> public override int GetHashCode() => HashCode.Combine(Major, Minor, Patch, PreReleaseTag, BuildMetaData); + /// <summary>Returns <see langword="true"/> when <paramref name="v1"/> and <paramref name="v2"/> are equal.</summary> public static bool operator ==(SemanticVersion? v1, SemanticVersion? v2) { if (v1 is null) @@ -86,8 +103,10 @@ public override bool Equals(object? obj) return v1.Equals(v2); } + /// <summary>Returns <see langword="true"/> when <paramref name="v1"/> and <paramref name="v2"/> are not equal.</summary> public static bool operator !=(SemanticVersion? v1, SemanticVersion? v2) => !(v1 == v2); + /// <summary>Returns <see langword="true"/> when <paramref name="v1"/> is greater than <paramref name="v2"/>.</summary> public static bool operator >(SemanticVersion v1, SemanticVersion v2) { ArgumentNullException.ThrowIfNull(v1); @@ -96,6 +115,7 @@ public override bool Equals(object? obj) return v1.CompareTo(v2) > 0; } + /// <summary>Returns <see langword="true"/> when <paramref name="v1"/> is greater than or equal to <paramref name="v2"/>.</summary> public static bool operator >=(SemanticVersion v1, SemanticVersion v2) { ArgumentNullException.ThrowIfNull(v1); @@ -104,6 +124,7 @@ public override bool Equals(object? obj) return v1.CompareTo(v2) >= 0; } + /// <summary>Returns <see langword="true"/> when <paramref name="v1"/> is less than or equal to <paramref name="v2"/>.</summary> public static bool operator <=(SemanticVersion v1, SemanticVersion v2) { ArgumentNullException.ThrowIfNull(v1); @@ -112,6 +133,7 @@ public override bool Equals(object? obj) return v1.CompareTo(v2) <= 0; } + /// <summary>Returns <see langword="true"/> when <paramref name="v1"/> is less than <paramref name="v2"/>.</summary> public static bool operator <(SemanticVersion v1, SemanticVersion v2) { ArgumentNullException.ThrowIfNull(v1); @@ -120,6 +142,7 @@ public override bool Equals(object? obj) return v1.CompareTo(v2) < 0; } + /// <summary>Parses <paramref name="version"/> as a semantic version, throwing when the input cannot be parsed.</summary> public static SemanticVersion Parse( string version, string? tagPrefixRegex, SemanticVersionFormat versionFormat = SemanticVersionFormat.Strict) { @@ -129,6 +152,7 @@ public static SemanticVersion Parse( return semanticVersion; } + /// <summary>Attempts to parse <paramref name="version"/> as a semantic version, returning <see langword="true"/> on success.</summary> public static bool TryParse(string version, string? tagPrefixRegex, [NotNullWhen(true)] out SemanticVersion? semanticVersion, SemanticVersionFormat format = SemanticVersionFormat.Strict) { @@ -201,23 +225,30 @@ private static bool TryParseLoose(string version, [NotNullWhen(true)] out Semant return true; } + /// <summary>Returns <see langword="true"/> when this version is greater than <paramref name="value"/>.</summary> public bool IsGreaterThan(SemanticVersion? value, bool includePreRelease = true) => CompareTo(value, includePreRelease) > 0; + /// <summary>Returns <see langword="true"/> when this version is greater than or equal to <paramref name="value"/>.</summary> public bool IsGreaterThanOrEqualTo(SemanticVersion? value, bool includePreRelease = true) => CompareTo(value, includePreRelease) >= 0; + /// <summary>Returns <see langword="true"/> when this version is less than <paramref name="value"/>.</summary> public bool IsLessThan(SemanticVersion? value, bool includePreRelease = true) => CompareTo(value, includePreRelease) < 0; + /// <summary>Returns <see langword="true"/> when this version is less than or equal to <paramref name="value"/>.</summary> public bool IsLessThanOrEqualTo(SemanticVersion? value, bool includePreRelease = true) => CompareTo(value, includePreRelease) <= 0; + /// <summary>Returns <see langword="true"/> when this version is equal to <paramref name="value"/>.</summary> public bool IsEqualTo(SemanticVersion? value, bool includePreRelease = true) => CompareTo(value, includePreRelease) == 0; + /// <summary>Compares this version to <paramref name="value"/>, including the pre-release tag in the comparison.</summary> public int CompareTo(SemanticVersion? value) => CompareTo(value, includePreRelease: true); + /// <summary>Compares this version to <paramref name="value"/>, optionally excluding the pre-release tag from the comparison.</summary> public int CompareTo(SemanticVersion? value, bool includePreRelease) { if (value == null) @@ -257,8 +288,10 @@ public int CompareTo(SemanticVersion? value, bool includePreRelease) return -1; } + /// <summary>Returns the default semantic version string (without build metadata).</summary> public override string ToString() => ToString("s"); + /// <summary>Returns a string representation of this version using the given format specifier.</summary> public string ToString(string format) => ToString(format, CultureInfo.CurrentCulture); /// <summary> @@ -303,16 +336,20 @@ public string ToString(string? format, IFormatProvider? formatProvider) } } + /// <summary>Returns a new version derived from this one with the pre-release tag changed to <paramref name="label"/>.</summary> public SemanticVersion WithLabel(string? label) => Increment(VersionField.None, label, mode: IncrementMode.Standard); + /// <summary>Returns a new version incremented by <paramref name="increment"/> with the given <paramref name="label"/>.</summary> public SemanticVersion Increment( VersionField increment, string? label, params SemanticVersion?[] alternativeSemanticVersions) => Increment(increment, label, mode: IncrementMode.Standard, alternativeSemanticVersions); + /// <summary>Returns a new version incremented by <paramref name="increment"/> with the given <paramref name="label"/>, optionally forcing the increment.</summary> public SemanticVersion Increment( VersionField increment, string? label, bool forceIncrement, params SemanticVersion?[] alternativeSemanticVersions) => Increment(increment, label, mode: forceIncrement ? IncrementMode.Force : IncrementMode.Standard, alternativeSemanticVersions); + /// <summary>Returns a new version incremented by <paramref name="increment"/> with the given <paramref name="label"/> and increment <paramref name="mode"/>.</summary> public SemanticVersion Increment( VersionField increment, string? label, IncrementMode mode, params SemanticVersion?[] alternativeSemanticVersions) { @@ -422,12 +459,16 @@ public SemanticVersion Increment( }; } + /// <summary>Controls how version incrementing is applied.</summary> public enum IncrementMode { + /// <summary>Increments the pre-release number when already on a pre-release, otherwise bumps the field.</summary> Standard, + /// <summary>Always bumps the version field regardless of whether a pre-release tag is present.</summary> Force, + /// <summary>Ensures the resulting version is strictly greater than the current one without forcing an unnecessary bump.</summary> EnsureIntegrity } } diff --git a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs index 7092fb457d..98f1b98f62 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs @@ -5,41 +5,57 @@ namespace GitVersion; +/// <summary>Holds the build metadata attached to a semantic version (commits-since-tag, branch, SHA, commit date, etc.).</summary> public class SemanticVersionBuildMetaData : IFormattable, IEquatable<SemanticVersionBuildMetaData?> { + /// <summary>An empty build metadata instance with no fields set.</summary> public static readonly SemanticVersionBuildMetaData Empty = new(); private static readonly LambdaEqualityHelper<SemanticVersionBuildMetaData> EqualityHelper = new(x => x.CommitsSinceTag, x => x.Branch, x => x.Sha); + /// <summary>Gets or initializes the number of commits since the last version tag.</summary> public long? CommitsSinceTag { get; init; } + /// <summary>Gets or initializes the name of the branch on which this version was calculated.</summary> public string? Branch { get; init; } + /// <summary>Gets or initializes the full SHA of the current commit.</summary> public string? Sha { get; init; } + /// <summary>Gets or initializes the abbreviated SHA of the current commit.</summary> public string? ShortSha { get; init; } + /// <summary>Gets or initializes any additional free-form metadata included in the build metadata string.</summary> public string? OtherMetaData { get; init; } + /// <summary>Gets or initializes the date of the current commit.</summary> public DateTimeOffset? CommitDate { get; init; } + /// <summary>Gets or initializes the semantic version of the source tag from which the version was calculated.</summary> public SemanticVersion? VersionSourceSemVer { get; init; } + /// <summary>Gets or initializes the SHA of the source tag commit.</summary> public string? VersionSourceSha { get; init; } + /// <summary>Gets the number of commits since the version source (alias for <see cref="VersionSourceDistance"/>).</summary> public long CommitsSinceVersionSource => VersionSourceDistance; + /// <summary>Gets or initializes the number of commits between the version source tag and the current commit.</summary> public long VersionSourceDistance { get; init; } + /// <summary>Gets or initializes the number of uncommitted changes in the working tree.</summary> public long UncommittedChanges { get; init; } + /// <summary>Gets or initializes the version field that was incremented relative to the version source.</summary> public VersionField VersionSourceIncrement { get; init; } + /// <summary>Initializes a new empty build metadata instance.</summary> public SemanticVersionBuildMetaData() { } + /// <summary>Initializes a new build metadata instance with all fields specified.</summary> public SemanticVersionBuildMetaData( SemanticVersion? versionSourceSemVer, string? versionSourceSha, @@ -65,6 +81,7 @@ public SemanticVersionBuildMetaData( this.UncommittedChanges = numberOfUnCommittedChanges; } + /// <summary>Initializes a new build metadata instance as a copy of <paramref name="buildMetaData"/>.</summary> public SemanticVersionBuildMetaData(SemanticVersionBuildMetaData buildMetaData) { buildMetaData.NotNull(); @@ -82,14 +99,19 @@ public SemanticVersionBuildMetaData(SemanticVersionBuildMetaData buildMetaData) this.VersionSourceIncrement = buildMetaData.VersionSourceIncrement; } + /// <summary>Returns <see langword="true"/> when <paramref name="obj"/> is a <see cref="SemanticVersionBuildMetaData"/> equal to this instance.</summary> public override bool Equals(object? obj) => Equals(obj as SemanticVersionBuildMetaData); + /// <summary>Returns <see langword="true"/> when this instance is equal to <paramref name="other"/> by commit count, branch, and SHA.</summary> public bool Equals(SemanticVersionBuildMetaData? other) => EqualityHelper.Equals(this, other); + /// <summary>Returns a hash code based on commit count, branch, and SHA.</summary> public override int GetHashCode() => EqualityHelper.GetHashCode(this); + /// <summary>Returns the default build metadata string (commits-since-tag).</summary> public override string ToString() => ToString("b"); + /// <summary>Returns a string representation of this build metadata using the given format specifier.</summary> public string ToString(string format) => ToString(format, CultureInfo.CurrentCulture); /// <summary> @@ -115,16 +137,21 @@ public string ToString(string? format, IFormatProvider? formatProvider) }; } + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> are equal.</summary> public static bool operator ==(SemanticVersionBuildMetaData? left, SemanticVersionBuildMetaData? right) => Equals(left, right); + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> are not equal.</summary> public static bool operator !=(SemanticVersionBuildMetaData? left, SemanticVersionBuildMetaData? right) => !Equals(left, right); + /// <summary>Implicitly converts a build metadata instance to its string representation.</summary> public static implicit operator string?(SemanticVersionBuildMetaData? preReleaseTag) => preReleaseTag?.ToString(); + /// <summary>Implicitly parses a string into a <see cref="SemanticVersionBuildMetaData"/> instance.</summary> public static implicit operator SemanticVersionBuildMetaData(string preReleaseTag) => Parse(preReleaseTag); + /// <summary>Parses the build metadata string, returning <see cref="Empty"/> when the input is null or empty.</summary> public static SemanticVersionBuildMetaData Parse(string? buildMetaData) { if (buildMetaData.IsNullOrEmpty()) diff --git a/src/GitVersion.Core/SemVer/SemanticVersionFormat.cs b/src/GitVersion.Core/SemVer/SemanticVersionFormat.cs index ec228defde..0ee313752f 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionFormat.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionFormat.cs @@ -1,7 +1,11 @@ namespace GitVersion; +/// <summary>Controls the leniency applied when parsing semantic version strings.</summary> public enum SemanticVersionFormat { + /// <summary>Parses only fully SemVer 2.0-compliant version strings.</summary> Strict, + + /// <summary>Accepts a wider range of version string formats, including four-part and partially-specified versions.</summary> Loose } diff --git a/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs b/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs index 5244c32240..5a5933f373 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs @@ -5,23 +5,31 @@ namespace GitVersion; +/// <summary>Represents the pre-release label and optional numeric identifier of a semantic version (e.g. <c>beta.1</c>).</summary> public sealed class SemanticVersionPreReleaseTag : IFormattable, IComparable<SemanticVersionPreReleaseTag>, IEquatable<SemanticVersionPreReleaseTag?> { private static readonly StringComparer IgnoreCaseComparer = StringComparer.InvariantCultureIgnoreCase; + + /// <summary>An empty pre-release tag with no name and no number.</summary> public static readonly SemanticVersionPreReleaseTag Empty = new(); private static readonly LambdaEqualityHelper<SemanticVersionPreReleaseTag> EqualityHelper = new(x => x.Name, x => x.Number); + /// <summary>Gets or initializes the pre-release label (e.g. <c>beta</c>).</summary> public string Name { get; init; } + /// <summary>Gets or initializes the numeric identifier appended after the label (e.g. the <c>1</c> in <c>beta.1</c>).</summary> public long? Number { get; init; } + /// <summary>Gets or initializes a value indicating whether the tag should be promoted even when <see cref="Name"/> is empty.</summary> public bool PromoteTagEvenIfNameIsEmpty { get; init; } + /// <summary>Initializes an empty pre-release tag.</summary> public SemanticVersionPreReleaseTag() => Name = string.Empty; + /// <summary>Initializes a new pre-release tag with the given name, number, and promotion flag.</summary> public SemanticVersionPreReleaseTag(string name, long? number, bool promoteTagEvenIfNameIsEmpty) { Name = name.NotNull(); @@ -29,6 +37,7 @@ public SemanticVersionPreReleaseTag(string name, long? number, bool promoteTagEv PromoteTagEvenIfNameIsEmpty = promoteTagEvenIfNameIsEmpty; } + /// <summary>Initializes a new pre-release tag as a copy of <paramref name="preReleaseTag"/>.</summary> public SemanticVersionPreReleaseTag(SemanticVersionPreReleaseTag preReleaseTag) { preReleaseTag.NotNull(); @@ -38,34 +47,46 @@ public SemanticVersionPreReleaseTag(SemanticVersionPreReleaseTag preReleaseTag) PromoteTagEvenIfNameIsEmpty = preReleaseTag.PromoteTagEvenIfNameIsEmpty; } + /// <summary>Returns <see langword="true"/> when <paramref name="obj"/> is a <see cref="SemanticVersionPreReleaseTag"/> equal to this instance.</summary> public override bool Equals(object? obj) => Equals(obj as SemanticVersionPreReleaseTag); + /// <summary>Returns <see langword="true"/> when this tag is equal to <paramref name="other"/> by name and number.</summary> public bool Equals(SemanticVersionPreReleaseTag? other) => EqualityHelper.Equals(this, other); + /// <summary>Returns a hash code based on the tag name and number.</summary> public override int GetHashCode() => EqualityHelper.GetHashCode(this); + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> are equal.</summary> public static bool operator ==(SemanticVersionPreReleaseTag? left, SemanticVersionPreReleaseTag? right) => Equals(left, right); + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> and <paramref name="right"/> are not equal.</summary> public static bool operator !=(SemanticVersionPreReleaseTag? left, SemanticVersionPreReleaseTag? right) => !Equals(left, right); + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is greater than <paramref name="right"/>.</summary> public static bool operator >(SemanticVersionPreReleaseTag? left, SemanticVersionPreReleaseTag? right) => left?.CompareTo(right) > 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is less than <paramref name="right"/>.</summary> public static bool operator <(SemanticVersionPreReleaseTag? left, SemanticVersionPreReleaseTag? right) => left?.CompareTo(right) < 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is greater than or equal to <paramref name="right"/>.</summary> public static bool operator >=(SemanticVersionPreReleaseTag? left, SemanticVersionPreReleaseTag? right) => left?.CompareTo(right) >= 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is less than or equal to <paramref name="right"/>.</summary> public static bool operator <=(SemanticVersionPreReleaseTag? left, SemanticVersionPreReleaseTag? right) => IgnoreCaseComparer.Compare(left?.Name, right?.Name) != 1; + /// <summary>Implicitly converts a pre-release tag to its string representation.</summary> public static implicit operator string?(SemanticVersionPreReleaseTag? preReleaseTag) => preReleaseTag?.ToString(); + /// <summary>Implicitly parses a string into a <see cref="SemanticVersionPreReleaseTag"/>.</summary> public static implicit operator SemanticVersionPreReleaseTag(string? preReleaseTag) => Parse(preReleaseTag); + /// <summary>Parses a pre-release tag string, returning <see cref="Empty"/> when the input is null or empty.</summary> public static SemanticVersionPreReleaseTag Parse(string? preReleaseTag) { if (preReleaseTag.IsNullOrEmpty()) return Empty; @@ -85,6 +106,7 @@ public static SemanticVersionPreReleaseTag Parse(string? preReleaseTag) : new SemanticVersionPreReleaseTag(value, number, true); } + /// <summary>Compares this tag to <paramref name="other"/> by name and number.</summary> public int CompareTo(SemanticVersionPreReleaseTag? other) { if (!HasTag() && other?.HasTag() == true) @@ -100,8 +122,10 @@ public int CompareTo(SemanticVersionPreReleaseTag? other) return nameComparison != 0 ? nameComparison : Nullable.Compare(Number, other?.Number); } + /// <summary>Returns the default SemVer 2.0 formatted tag string (e.g. <c>beta.1</c>).</summary> public override string ToString() => ToString("t"); + /// <summary>Returns a string representation using the given format specifier.</summary> public string ToString(string format) => ToString(format, CultureInfo.CurrentCulture); /// <summary> @@ -125,5 +149,6 @@ public string ToString(string? format, IFormatProvider? formatProvider) }; } + /// <summary>Returns <see langword="true"/> when this tag has a non-empty name or a number with the promotion flag set.</summary> public bool HasTag() => !Name.IsNullOrEmpty() || (Number.HasValue && PromoteTagEvenIfNameIsEmpty); } diff --git a/src/GitVersion.Core/SemVer/VersionField.cs b/src/GitVersion.Core/SemVer/VersionField.cs index b76adb3c05..fb2ef15ad6 100644 --- a/src/GitVersion.Core/SemVer/VersionField.cs +++ b/src/GitVersion.Core/SemVer/VersionField.cs @@ -1,9 +1,17 @@ namespace GitVersion; +/// <summary>Identifies the position in a semantic version string that should be incremented.</summary> public enum VersionField { + /// <summary>No field is incremented; the pre-release number is bumped instead.</summary> None, + + /// <summary>Increment the patch component.</summary> Patch, + + /// <summary>Increment the minor component (and reset patch to zero).</summary> Minor, + + /// <summary>Increment the major component (and reset minor and patch to zero).</summary> Major } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IDeploymentModeCalculator.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IDeploymentModeCalculator.cs index 0d01bf512d..78470f2bc4 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IDeploymentModeCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IDeploymentModeCalculator.cs @@ -1,6 +1,8 @@ namespace GitVersion.VersionCalculation; +/// <summary>Applies a deployment-mode-specific calculation to transform a base semantic version into the final version.</summary> public interface IDeploymentModeCalculator { + /// <summary>Calculates the final <see cref="SemanticVersion"/> by applying deployment-mode rules to <paramref name="semanticVersion"/> and <paramref name="baseVersion"/>.</summary> SemanticVersion Calculate(SemanticVersion semanticVersion, IBaseVersion baseVersion); } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IEffectiveBranchConfigurationFinder.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IEffectiveBranchConfigurationFinder.cs index 12a44ceb4d..cafde6c524 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IEffectiveBranchConfigurationFinder.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IEffectiveBranchConfigurationFinder.cs @@ -3,7 +3,9 @@ namespace GitVersion.VersionCalculation; +/// <summary>Resolves the set of <see cref="EffectiveBranchConfiguration"/> instances that apply to a given branch.</summary> public interface IEffectiveBranchConfigurationFinder { + /// <summary>Returns the effective branch configurations that match <paramref name="branch"/> under the given global <paramref name="configuration"/>.</summary> IEnumerable<EffectiveBranchConfiguration> GetConfigurations(IBranch branch, IGitVersionConfiguration configuration); } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IIncrementStrategyFinder.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IIncrementStrategyFinder.cs index 6331be284d..54920c1602 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IIncrementStrategyFinder.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IIncrementStrategyFinder.cs @@ -3,12 +3,16 @@ namespace GitVersion.VersionCalculation; +/// <summary>Determines the version-field increment that should be applied based on commit messages and branch context.</summary> public interface IIncrementStrategyFinder { + /// <summary>Determines which version field to increment given the current commit, base version source, and branch configuration.</summary> VersionField DetermineIncrementedField( ICommit currentCommit, ICommit? baseVersionSource, bool shouldIncrement, EffectiveConfiguration configuration, string? label); + /// <summary>Returns the commits that were merged as part of a merge commit at the given <paramref name="index"/>.</summary> IEnumerable<ICommit> GetMergedCommits(ICommit mergeCommit, int index, IIgnoreConfiguration ignore); + /// <summary>Returns the version field increment forced by a commit message keyword in <paramref name="commit"/>.</summary> VersionField GetIncrementForcedByCommit(ICommit commit, IGitVersionConfiguration configuration); } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/INextVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/INextVersionCalculator.cs index 03bc8082db..461fad5ec8 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/INextVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/INextVersionCalculator.cs @@ -1,6 +1,8 @@ namespace GitVersion.VersionCalculation; +/// <summary>Orchestrates the full version calculation pipeline and returns the next semantic version.</summary> public interface INextVersionCalculator { + /// <summary>Calculates and returns the next semantic version for the current repository state.</summary> SemanticVersion FindVersion(); } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IVariableProvider.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IVariableProvider.cs index cb848efc23..71979edc49 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IVariableProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IVariableProvider.cs @@ -3,8 +3,10 @@ namespace GitVersion.VersionCalculation; +/// <summary>Converts a calculated <see cref="SemanticVersion"/> into the full set of <see cref="GitVersionVariables"/>.</summary> public interface IVariableProvider { + /// <summary>Builds and returns all version variables for the given <paramref name="semanticVersion"/>.</summary> GitVersionVariables GetVariablesFor( SemanticVersion semanticVersion, IGitVersionConfiguration configuration, int preReleaseWeight); } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionFilter.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionFilter.cs index f6de404af0..1516a8deea 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionFilter.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionFilter.cs @@ -2,8 +2,12 @@ namespace GitVersion.VersionCalculation; +/// <summary>Determines whether a base version or commit should be excluded from version calculation.</summary> public interface IVersionFilter { + /// <summary>Returns <see langword="true"/> when <paramref name="baseVersion"/> should be excluded, setting <paramref name="reason"/> to a description of why.</summary> bool Exclude(IBaseVersion baseVersion, out string? reason); + + /// <summary>Returns <see langword="true"/> when <paramref name="commit"/> should be excluded, setting <paramref name="reason"/> to a description of why.</summary> bool Exclude(ICommit? commit, out string? reason); } diff --git a/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionStrategy.cs index 1fcddaee17..ee3975afe0 100644 --- a/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/Abstractions/IVersionStrategy.cs @@ -2,7 +2,9 @@ namespace GitVersion.VersionCalculation; +/// <summary>Implements a strategy for discovering candidate base versions from a specific source (e.g. tags, branch names, merge messages).</summary> public interface IVersionStrategy { + /// <summary>Returns the candidate base versions found by this strategy for the given branch <paramref name="configuration"/>.</summary> IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration); } diff --git a/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheKeyFactory.cs b/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheKeyFactory.cs index 29ae72d8b4..bf5ee25b6f 100644 --- a/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheKeyFactory.cs +++ b/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheKeyFactory.cs @@ -1,6 +1,8 @@ namespace GitVersion.VersionCalculation.Caching; +/// <summary>Represents the cache key used to identify a stored set of <see cref="GitVersion.OutputVariables.GitVersionVariables"/> on disk.</summary> public record GitVersionCacheKey(string Value); + internal interface IGitVersionCacheKeyFactory { GitVersionCacheKey Create(IReadOnlyDictionary<object, object?>? overrideConfiguration); diff --git a/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheProvider.cs b/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheProvider.cs index a25909892e..cefb6484c0 100644 --- a/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/Caching/IGitVersionCacheProvider.cs @@ -2,8 +2,12 @@ namespace GitVersion.VersionCalculation.Caching; +/// <summary>Persists and retrieves <see cref="GitVersionVariables"/> from a disk cache to avoid redundant recalculation.</summary> public interface IGitVersionCacheProvider { + /// <summary>Writes <paramref name="versionVariables"/> to the on-disk cache.</summary> void WriteVariablesToDiskCache(GitVersionVariables versionVariables); + + /// <summary>Loads and returns the cached <see cref="GitVersionVariables"/>, or <see langword="null"/> if the cache is absent or stale.</summary> GitVersionVariables? LoadVersionVariablesFromDiskCache(); } diff --git a/src/GitVersion.Core/VersionCalculation/CommitMessageIncrementMode.cs b/src/GitVersion.Core/VersionCalculation/CommitMessageIncrementMode.cs index 4a817ea6fc..f0bdd80b13 100644 --- a/src/GitVersion.Core/VersionCalculation/CommitMessageIncrementMode.cs +++ b/src/GitVersion.Core/VersionCalculation/CommitMessageIncrementMode.cs @@ -1,8 +1,14 @@ namespace GitVersion.VersionCalculation; +/// <summary>Controls whether and how commit messages are used to determine automatic version increments.</summary> public enum CommitMessageIncrementMode { + /// <summary>All commit messages are inspected for increment keywords.</summary> Enabled, + + /// <summary>Commit messages are never inspected; increments must be configured explicitly.</summary> Disabled, + + /// <summary>Only merge commit messages are inspected for increment keywords.</summary> MergeMessageOnly } diff --git a/src/GitVersion.Core/VersionCalculation/DeploymentMode.cs b/src/GitVersion.Core/VersionCalculation/DeploymentMode.cs index e6fa322591..adf40b25a8 100644 --- a/src/GitVersion.Core/VersionCalculation/DeploymentMode.cs +++ b/src/GitVersion.Core/VersionCalculation/DeploymentMode.cs @@ -1,8 +1,14 @@ namespace GitVersion.VersionCalculation; +/// <summary>Specifies the deployment strategy used to determine how the version number changes between releases.</summary> public enum DeploymentMode { + /// <summary>Each build on a pre-release branch produces a unique pre-release version; the version is only finalised on an explicit release.</summary> ManualDeployment, + + /// <summary>Each commit is a potential release candidate; the build number is appended as the pre-release number.</summary> ContinuousDelivery, + + /// <summary>Each commit is automatically deployed; versions are calculated as if every commit is a new release.</summary> ContinuousDeployment } diff --git a/src/GitVersion.Core/VersionCalculation/IncrementStrategy.cs b/src/GitVersion.Core/VersionCalculation/IncrementStrategy.cs index aa2be5fd26..2bc89fcd03 100644 --- a/src/GitVersion.Core/VersionCalculation/IncrementStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/IncrementStrategy.cs @@ -1,10 +1,20 @@ namespace GitVersion; +/// <summary>Specifies which version component should be incremented when creating a release from a branch.</summary> public enum IncrementStrategy { + /// <summary>No automatic increment is applied.</summary> None, + + /// <summary>Increment the major component.</summary> Major, + + /// <summary>Increment the minor component.</summary> Minor, + + /// <summary>Increment the patch component.</summary> Patch, + + /// <summary>Inherit the increment strategy from the parent or source branch.</summary> Inherit } diff --git a/src/GitVersion.Core/VersionCalculation/NextVersion.cs b/src/GitVersion.Core/VersionCalculation/NextVersion.cs index 6493e70ef3..9c74d8a027 100644 --- a/src/GitVersion.Core/VersionCalculation/NextVersion.cs +++ b/src/GitVersion.Core/VersionCalculation/NextVersion.cs @@ -3,39 +3,55 @@ namespace GitVersion.VersionCalculation; +/// <summary>Represents the next calculated version together with its base version and branch configuration.</summary> public class NextVersion( SemanticVersion incrementedVersion, IBaseVersion baseVersion, EffectiveBranchConfiguration configuration) : IComparable<NextVersion>, IEquatable<NextVersion> { + /// <summary>Gets the base version that was used as the starting point for this calculation.</summary> public IBaseVersion BaseVersion { get; } = baseVersion.NotNull(); + /// <summary>Gets the semantic version after applying the required increments.</summary> public SemanticVersion IncrementedVersion { get; } = incrementedVersion.NotNull(); + /// <summary>Gets the effective branch configuration under which this version was calculated.</summary> public EffectiveBranchConfiguration BranchConfiguration { get; } = configuration; + /// <summary>Gets the effective configuration values for the branch.</summary> public EffectiveConfiguration Configuration => BranchConfiguration.Value; + /// <summary>Compares this version to <paramref name="other"/> by incremented version.</summary> public int CompareTo(NextVersion? other) => IncrementedVersion.CompareTo(other?.IncrementedVersion); + /// <summary>Returns <see langword="true"/> when the incremented versions of <paramref name="left"/> and <paramref name="right"/> are equal.</summary> public static bool operator ==(NextVersion left, NextVersion? right) => left.CompareTo(right) == 0; + /// <summary>Returns <see langword="true"/> when the incremented versions of <paramref name="left"/> and <paramref name="right"/> are not equal.</summary> public static bool operator !=(NextVersion left, NextVersion right) => left.CompareTo(right) != 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is less than <paramref name="right"/>.</summary> public static bool operator <(NextVersion left, NextVersion right) => left.CompareTo(right) < 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is less than or equal to <paramref name="right"/>.</summary> public static bool operator <=(NextVersion left, NextVersion right) => left.CompareTo(right) <= 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is greater than <paramref name="right"/>.</summary> public static bool operator >(NextVersion left, NextVersion right) => left.CompareTo(right) > 0; + /// <summary>Returns <see langword="true"/> when <paramref name="left"/> is greater than or equal to <paramref name="right"/>.</summary> public static bool operator >=(NextVersion left, NextVersion right) => left.CompareTo(right) >= 0; + /// <summary>Returns <see langword="true"/> when this instance equals <paramref name="other"/>.</summary> public bool Equals(NextVersion? other) => this == other; + /// <summary>Returns <see langword="true"/> when <paramref name="other"/> is a <see cref="NextVersion"/> equal to this instance.</summary> public override bool Equals(object? other) => other is NextVersion nextVersion && Equals(nextVersion); + /// <summary>Returns a human-readable representation showing the base version and incremented version.</summary> public override string ToString() => $"{BaseVersion} | {IncrementedVersion}"; + /// <summary>Returns a hash code based on the string representation.</summary> public override int GetHashCode() => ToString().GetHashCode(); } diff --git a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs index f21d1d852e..3943b84ab5 100644 --- a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs +++ b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs @@ -5,63 +5,92 @@ namespace GitVersion; +/// <summary>Exposes all computed version format values used by custom format strings in GitVersion configuration.</summary> public class SemanticVersionFormatValues(SemanticVersion semver, IGitVersionConfiguration configuration, int preReleaseWeight) { + /// <summary>Gets the major version component as a string.</summary> public string Major => semver.Major.ToString(); + /// <summary>Gets the minor version component as a string.</summary> public string Minor => semver.Minor.ToString(); + /// <summary>Gets the patch version component as a string.</summary> public string Patch => semver.Patch.ToString(); + /// <summary>Gets the full pre-release tag (e.g. <c>beta.1</c>).</summary> public string PreReleaseTag => semver.PreReleaseTag.ToString(); + /// <summary>Gets the pre-release tag prefixed with a dash (e.g. <c>-beta.1</c>), or empty string when there is no tag.</summary> public string PreReleaseTagWithDash => this.PreReleaseTag.WithPrefixIfNotNullOrEmpty("-"); + /// <summary>Gets the pre-release label without the numeric identifier (e.g. <c>beta</c>).</summary> public string PreReleaseLabel => semver.PreReleaseTag.Name; + /// <summary>Gets the pre-release label prefixed with a dash (e.g. <c>-beta</c>), or empty string when there is no label.</summary> public string PreReleaseLabelWithDash => this.PreReleaseLabel.WithPrefixIfNotNullOrEmpty("-"); + /// <summary>Gets the numeric pre-release identifier as a string, or empty string when absent.</summary> public string PreReleaseNumber => semver.PreReleaseTag.Number?.ToString() ?? string.Empty; + /// <summary>Gets the pre-release number adjusted by the configured pre-release weight.</summary> public string WeightedPreReleaseNumber => semver.PreReleaseTag.Number.HasValue ? $"{semver.PreReleaseTag.Number.Value + preReleaseWeight}" : $"{configuration.TagPreReleaseWeight}"; + /// <summary>Gets the build metadata string (commits-since-tag).</summary> public string BuildMetaData => semver.BuildMetaData.ToString(); + /// <summary>Gets the full build metadata string including branch, SHA, and other fields.</summary> public string FullBuildMetaData => semver.BuildMetaData.ToString("f"); + /// <summary>Gets the version in <c>Major.Minor.Patch</c> format.</summary> public string MajorMinorPatch => $"{semver.Major}.{semver.Minor}.{semver.Patch}"; + /// <summary>Gets the default semantic version string (without build metadata).</summary> public string SemVer => semver.ToString(); + /// <summary>Gets the assembly version string computed according to the configured <see cref="AssemblyVersioningScheme"/>.</summary> public string? AssemblySemVer => semver.GetAssemblyVersion(configuration.AssemblyVersioningScheme!.Value); + /// <summary>Gets the assembly file version string computed according to the configured <see cref="AssemblyFileVersioningScheme"/>.</summary> public string? AssemblyFileSemVer => semver.GetAssemblyFileVersion(configuration.AssemblyFileVersioningScheme!.Value); + /// <summary>Gets the full semantic version string including build metadata.</summary> public string FullSemVer => semver.ToString("f"); + /// <summary>Gets the name of the branch on which this version was calculated.</summary> public string? BranchName => semver.BuildMetaData.Branch; + /// <summary>Gets the branch name with characters that are invalid in environment variable names replaced by dashes.</summary> public string? EscapedBranchName => semver.BuildMetaData.Branch?.RegexReplace(RegexPatterns.SanitizeNameRegexPattern, "-"); + /// <summary>Gets the full SHA of the current commit.</summary> public string? Sha => semver.BuildMetaData.Sha; + /// <summary>Gets the abbreviated SHA of the current commit.</summary> public string? ShortSha => semver.BuildMetaData.ShortSha; + /// <summary>Gets the commit date formatted according to the configured <c>CommitDateFormat</c>.</summary> public string? CommitDate => semver.BuildMetaData.CommitDate?.UtcDateTime.ToString(configuration.CommitDateFormat, CultureInfo.InvariantCulture); + /// <summary>Gets the informational version string (SemVer + full build metadata).</summary> public string InformationalVersion => semver.ToString("i"); + /// <summary>Gets the semantic version of the source tag from which the version was calculated.</summary> public string? VersionSourceSemVer => semver.BuildMetaData.VersionSourceSemVer?.ToString(); + /// <summary>Gets the SHA of the source tag commit.</summary> public string? VersionSourceSha => semver.BuildMetaData.VersionSourceSha; + /// <summary>Gets the number of commits since the version source.</summary> [Obsolete("CommitsSinceVersionSource has been deprecated. Use VersionSourceDistance instead.")] public string CommitsSinceVersionSource => semver.BuildMetaData.VersionSourceDistance.ToString(CultureInfo.InvariantCulture); + /// <summary>Gets the number of commits between the version source tag and the current commit.</summary> public string VersionSourceDistance => semver.BuildMetaData.VersionSourceDistance.ToString(CultureInfo.InvariantCulture); + /// <summary>Gets the number of uncommitted changes in the working tree.</summary> public string UncommittedChanges => semver.BuildMetaData.UncommittedChanges.ToString(CultureInfo.InvariantCulture); + /// <summary>Gets the version field that was incremented relative to the version source.</summary> public string VersionSourceIncrement => semver.BuildMetaData.VersionSourceIncrement.ToString(); } diff --git a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionWithTag.cs b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionWithTag.cs index 823c182244..cec9062037 100644 --- a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionWithTag.cs +++ b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionWithTag.cs @@ -2,9 +2,12 @@ namespace GitVersion; +/// <summary>Pairs a parsed <see cref="SemanticVersion"/> with the <see cref="ITag"/> it was extracted from.</summary> public sealed record SemanticVersionWithTag(SemanticVersion Value, ITag Tag) : IComparable<SemanticVersionWithTag> { + /// <summary>Compares this instance to <paramref name="other"/> by semantic version.</summary> public int CompareTo(SemanticVersionWithTag? other) => Value.CompareTo(other?.Value); + /// <summary>Returns a human-readable representation showing the tag, its commit, and the parsed version.</summary> public override string ToString() => $"{Tag} | {Tag.Commit} | {Value}"; } diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculationModule.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculationModule.cs index 31d2d0fd6f..6b01eecb5d 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculationModule.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculationModule.cs @@ -2,8 +2,10 @@ namespace GitVersion.VersionCalculation; +/// <summary>Registers the version-calculation services including version strategies, variable provider, deployment-mode calculators, and increment strategy finder.</summary> public class VersionCalculationModule : IGitVersionModule { + /// <summary>Registers all version-calculation services into the DI container.</summary> public void RegisterTypes(IServiceCollection services) { services.AddModule(new VersionStrategyModule()); diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersion.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersion.cs index b8c7cbb3b1..8a0837c67a 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersion.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersion.cs @@ -4,32 +4,43 @@ namespace GitVersion.VersionCalculation; +/// <summary>Represents a resolved base version consisting of an operand (the discovered version) and an optional operator (the increment to apply).</summary> public sealed record BaseVersion(BaseVersionOperand Operand) : IBaseVersion { + /// <summary>Initializes an empty base version.</summary> public BaseVersion() : this(new BaseVersionOperand()) { } + /// <summary>Initializes a base version from a source description, semantic version, and optional source commit.</summary> public BaseVersion(string source, SemanticVersion semanticVersion, ICommit? baseVersionSource = null) : this(new BaseVersionOperand(source, semanticVersion, baseVersionSource)) { } + /// <summary>Gets the human-readable description of the source that produced this base version.</summary> public string Source => (Operator?.Source).IsNullOrEmpty() ? Operand.Source : Operator.Source; + /// <summary>Gets the base semantic version before any increment is applied.</summary> public SemanticVersion SemanticVersion => Operand.SemanticVersion; + /// <summary>Gets the version field that will be incremented, or <see cref="VersionField.None"/> when no increment is needed.</summary> public VersionField Increment => Operator?.Increment ?? VersionField.None; + /// <summary>Gets the commit that is the source of this base version.</summary> public ICommit? BaseVersionSource => Operator?.BaseVersionSource ?? Operand.BaseVersionSource; + /// <summary>Gets a value indicating whether this base version has a pending increment operator.</summary> [MemberNotNullWhen(true, nameof(Operator))] public bool ShouldIncrement => Operator is not null; + /// <summary>Gets or initializes the operand that holds the discovered version.</summary> public BaseVersionOperand Operand { get; init; } = Operand.NotNull(); + /// <summary>Gets or initializes the optional operator that describes the increment to apply.</summary> public BaseVersionOperator? Operator { get; init; } + /// <summary>Returns the semantic version after applying the operator increment, or the base version when no increment is needed.</summary> public SemanticVersion GetIncrementedVersion() { var result = SemanticVersion; @@ -47,6 +58,7 @@ public SemanticVersion GetIncrementedVersion() return result; } + /// <summary>Returns a human-readable description of this base version including source, version, increment, and commit anchor.</summary> public override string ToString() { var commitSource = BaseVersionSource?.Id.ToString(7) ?? "External"; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperand.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperand.cs index 0a46368ba5..80f9ff2bb2 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperand.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperand.cs @@ -3,17 +3,22 @@ namespace GitVersion.VersionCalculation; +/// <summary>Represents the discovered base version — the semantic version value and the commit it was found at.</summary> public sealed record BaseVersionOperand(string Source, SemanticVersion SemanticVersion, ICommit? BaseVersionSource = null) : IBaseVersionIncrement { + /// <summary>Initializes an empty operand.</summary> public BaseVersionOperand() : this(string.Empty, SemanticVersion.Empty) { } + /// <summary>Gets or initializes the human-readable description of the source that produced this operand.</summary> public string Source { get; init; } = Source.NotNull(); + /// <summary>Gets or initializes the discovered semantic version.</summary> public SemanticVersion SemanticVersion { get; init; } = SemanticVersion.NotNull(); + /// <summary>Returns a human-readable description of this operand including its source and version.</summary> public override string ToString() { StringBuilder stringBuilder = new(); diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperator.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperator.cs index c76ce82d38..3549c93c1a 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/BaseVersionOperator.cs @@ -2,20 +2,28 @@ namespace GitVersion.VersionCalculation; +/// <summary>Describes the version increment operation that should be applied to a <see cref="BaseVersionOperand"/> to produce the next version.</summary> public sealed record BaseVersionOperator : IBaseVersionIncrement { + /// <summary>Gets or initializes the human-readable source description for this increment.</summary> public string Source { get; init; } = string.Empty; + /// <summary>Gets or initializes the commit that is the source of this operator.</summary> public ICommit? BaseVersionSource { get; init; } + /// <summary>Gets or initializes the version field to increment.</summary> public VersionField Increment { get; init; } + /// <summary>Gets or initializes a value indicating whether the increment should be applied unconditionally.</summary> public bool ForceIncrement { get; init; } + /// <summary>Gets or initializes the pre-release label to apply after incrementing.</summary> public string? Label { get; init; } + /// <summary>Gets or initializes an alternative semantic version that may be used instead when it is greater than the incremented version.</summary> public SemanticVersion? AlternativeSemanticVersion { get; init; } + /// <summary>Returns a human-readable description of this operator including source, increment field, label, and commit anchor.</summary> public override string ToString() { StringBuilder stringBuilder = new(); diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersion.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersion.cs index 98b469cde5..30cdf490f1 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersion.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersion.cs @@ -1,8 +1,11 @@ namespace GitVersion.VersionCalculation; +/// <summary>Represents a resolved base version that carries both a semantic version value and a pending increment.</summary> public interface IBaseVersion : IBaseVersionIncrement { + /// <summary>Gets the discovered base semantic version.</summary> SemanticVersion SemanticVersion { get; } + /// <summary>Gets the version field that will be incremented to produce the next version.</summary> VersionField Increment { get; } } diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersionIncrement.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersionIncrement.cs index 02f53b7cd1..296b65c491 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersionIncrement.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/IBaseVersionIncrement.cs @@ -2,9 +2,12 @@ namespace GitVersion.VersionCalculation; +/// <summary>Base interface for types that describe a version increment: a source description and the commit that anchors the calculation.</summary> public interface IBaseVersionIncrement { + /// <summary>Gets a human-readable description of the strategy or artifact that produced this increment.</summary> string Source { get; } + /// <summary>Gets the commit that the base version was derived from, or <see langword="null"/> when the version has an external source.</summary> ICommit? BaseVersionSource { get; } } diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionStrategyModule.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionStrategyModule.cs index fd1fb2143d..ff80c48871 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionStrategyModule.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionStrategyModule.cs @@ -1,7 +1,9 @@ namespace GitVersion.VersionCalculation; +/// <summary>Automatically discovers and registers all concrete <see cref="IVersionStrategy"/> implementations found in the current assembly.</summary> public class VersionStrategyModule : IGitVersionModule { + /// <summary>Scans the assembly for <see cref="IVersionStrategy"/> implementations and registers each as a singleton.</summary> public void RegisterTypes(IServiceCollection services) { var versionStrategies = IGitVersionModule.FindAllDerivedTypes<IVersionStrategy>(Assembly.GetAssembly(GetType())) diff --git a/src/GitVersion.Core/VersionCalculation/VersionStrategies.cs b/src/GitVersion.Core/VersionCalculation/VersionStrategies.cs index 4fe020c87a..c8c7d9307f 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionStrategies.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionStrategies.cs @@ -1,14 +1,30 @@ namespace GitVersion.VersionCalculation; +/// <summary>A bitmask that enables or disables individual version-discovery strategies.</summary> [Flags] public enum VersionStrategies { + /// <summary>No strategies are enabled.</summary> None = 0, + + /// <summary>Uses a fallback version (typically <c>0.1.0</c>) when no other strategy finds a version.</summary> Fallback = 1, + + /// <summary>Uses the <c>next-version</c> value from the configuration file.</summary> ConfiguredNextVersion = 2, + + /// <summary>Extracts the version from merge commit messages.</summary> MergeMessage = 4, + + /// <summary>Uses the most recent version tag reachable from the current commit.</summary> TaggedCommit = 8, + + /// <summary>Tracks the version from related release branches.</summary> TrackReleaseBranches = 16, + + /// <summary>Extracts the version embedded in the branch name.</summary> VersionInBranchName = 32, + + /// <summary>Uses the mainline development strategy to calculate the version from the commit graph.</summary> Mainline = 64 } From 54cbfe79bfdc7d4067a8c85debed19c19e2d5c4c Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 10 Jun 2026 17:40:54 +0200 Subject: [PATCH 337/358] chore(claude): expand allowed bash commands for .NET development Add permissions for `dotnet clean`, `dotnet format`, and wildcard support for `dotnet restore` to improve Claude Code's build and maintenance capabilities. --- .claude/settings.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.claude/settings.json b/.claude/settings.json index b6d226f69e..d64d38f0fc 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -7,9 +7,11 @@ "allow": [ "Bash(grep -E \"\\\\.cs$\")", "Bash(dotnet --version)", - "Bash(dotnet restore)", "Bash(dotnet build *)", - "Bash(dotnet test *)" + "Bash(dotnet test *)", + "Bash(dotnet clean *)", + "Bash(dotnet restore *)", + "Bash(dotnet format *)" ] } } From e68a8015a371989b5dd46c944d48410e0561033e Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 10 Jun 2026 18:48:00 +0200 Subject: [PATCH 338/358] build: enable CS8618 warnings and resolve nullable field violations Remove the global suppression for CS8618 in Directory.Build.props and fix resulting warnings by using the 'required' modifier or null-forgiving operators. --- src/Directory.Build.props | 1 - .../Configuration/ConfigurationFileLocatorTests.cs | 4 ++-- src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs | 8 ++++---- .../Helpers/MsBuildExeFixtureResult.cs | 6 +++--- .../Helpers/MsBuildTaskFixtureResult.cs | 4 ++-- src/GitVersion.MsBuild.Tests/Mocks/MockTaskItem.cs | 4 ++-- 6 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index b2b4524696..1d1da41002 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -44,7 +44,6 @@ <OutputType>Exe</OutputType> <IsPackable>false</IsPackable> - <NoWarn>$(NoWarn);CS8618</NoWarn> <EnableNUnitRunner>true</EnableNUnitRunner> <EnableMicrosoftTestingPlatformRunner>true</EnableMicrosoftTestingPlatformRunner> diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs index 9c76249c53..83cf4dddbc 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs @@ -90,8 +90,8 @@ public class NamedConfigurationFileLocatorTests : TestBase { private string repoPath; private string workingPath; - private IFileSystem fileSystem; - private IConfigurationFileLocator configFileLocator; + private IFileSystem fileSystem = null!; + private IConfigurationFileLocator configFileLocator = null!; private GitVersionOptions gitVersionOptions; private string ConfigFile => this.gitVersionOptions.ConfigurationInfo.ConfigurationFile!; diff --git a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs index f3034638f1..9173866a28 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs @@ -16,10 +16,10 @@ namespace GitVersion.Core.Tests; [Parallelizable(ParallelScope.None)] public class GitVersionExecutorTests : TestBase { - private IFileSystem fileSystem; - private ILog log; - private GitVersionCacheProvider gitVersionCacheProvider; - private IServiceProvider sp; + private IFileSystem fileSystem = null!; + private ILog log = null!; + private GitVersionCacheProvider gitVersionCacheProvider = null!; + private IServiceProvider sp = null!; private const string versionCacheFileContent = """ diff --git a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixtureResult.cs b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixtureResult.cs index 02b7271a23..4a005cefdd 100644 --- a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixtureResult.cs +++ b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixtureResult.cs @@ -4,8 +4,8 @@ namespace GitVersion.MsBuild.Tests.Helpers; public sealed class MsBuildExeFixtureResult(IDisposable fixture) : IDisposable { - public IAnalyzerResults MsBuild { get; init; } - public string Output { get; init; } - public string ProjectPath { get; init; } + public required IAnalyzerResults MsBuild { get; init; } + public required string Output { get; init; } + public required string ProjectPath { get; init; } public void Dispose() => fixture.Dispose(); } diff --git a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixtureResult.cs b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixtureResult.cs index e75a409360..56e8f73523 100644 --- a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixtureResult.cs +++ b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixtureResult.cs @@ -7,12 +7,12 @@ public sealed class MsBuildTaskFixtureResult<T>(IDisposable fixture) : IDisposab { public bool Success { get; init; } - public T Task { get; init; } + public required T Task { get; init; } public int Errors { get; init; } public int Warnings { get; set; } public int Messages { get; set; } - public string Log { get; init; } + public required string Log { get; init; } public void Dispose() => fixture.Dispose(); } diff --git a/src/GitVersion.MsBuild.Tests/Mocks/MockTaskItem.cs b/src/GitVersion.MsBuild.Tests/Mocks/MockTaskItem.cs index 68aee512ec..497f605281 100644 --- a/src/GitVersion.MsBuild.Tests/Mocks/MockTaskItem.cs +++ b/src/GitVersion.MsBuild.Tests/Mocks/MockTaskItem.cs @@ -4,11 +4,11 @@ namespace GitVersion.MsBuild.Tests.Mocks; internal class MockTaskItem : ITaskItem { - public string ItemSpec { get; set; } + public string ItemSpec { get; set; } = null!; public int MetadataCount { get; set; } - public ICollection MetadataNames { get; set; } + public ICollection MetadataNames { get; set; } = null!; public IDictionary CloneCustomMetadata() => throw new NotImplementedException(); From 2e4af1a9c5c647c23e7950710149a2692b188e6c Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 10 Jun 2026 18:54:19 +0200 Subject: [PATCH 339/358] build: enable CS8625 and CS2254 warnings while enforcing IDE0005 Remove global suppressions for literal null to non-nullable reference types (CS8625) and logging format strings (CS2254). Add IDE0005 to ensure unnecessary usings are flagged across all projects. --- new-cli/Directory.Build.props | 2 +- src/Directory.Build.props | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-cli/Directory.Build.props b/new-cli/Directory.Build.props index acf633afc1..33823c133b 100644 --- a/new-cli/Directory.Build.props +++ b/new-cli/Directory.Build.props @@ -6,7 +6,7 @@ <LangVersion>latest</LangVersion> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> - <NoWarn>$(NoWarn);CS8625;CS2254;IDE0005</NoWarn> + <NoWarn>$(NoWarn);IDE0005</NoWarn> <SatelliteResourceLanguages>en</SatelliteResourceLanguages> <EnableNETAnalyzers>true</EnableNETAnalyzers> diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 1d1da41002..c5b3e77354 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -18,7 +18,7 @@ <RepositoryUrl>https://github.com/GitTools/GitVersion</RepositoryUrl> <RepositoryType>git</RepositoryType> - <NoWarn>$(NoWarn);NU1701;EnableGenerateDocumentationFile</NoWarn> + <NoWarn>$(NoWarn);NU1701;IDE0005</NoWarn> <DebugType>embedded</DebugType> <LangVersion>latest</LangVersion> From f28c88b3ad820aaf3b743f6ba8cc1af5151b7a4d Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 10 Jun 2026 20:01:38 +0200 Subject: [PATCH 340/358] build: fix CS8618 in test fixtures and add null! initializers Adds = null! to all [SetUp]-initialized fields across 28 test files, resolving CS8618 warnings now that nullable warnings are enabled for test projects. dotnet format --verify-no-changes passes cleanly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --- .../ArgumentParserOnBuildServerTests.cs | 2 +- src/GitVersion.App.Tests/ArgumentParserTests.cs | 6 +++--- .../UpdateWixVersionFileTests.cs | 2 +- .../Agents/AzurePipelinesTests.cs | 4 ++-- .../Agents/BitBucketPipelinesTests.cs | 8 ++++---- .../Agents/BuildKiteTests.cs | 4 ++-- .../Agents/BuildServerBaseTests.cs | 4 ++-- .../Agents/CodeBuildTests.cs | 8 ++++---- .../Agents/ContinuaCiTests.cs | 2 +- .../Agents/DroneTests.cs | 6 +++--- .../Agents/EnvRunTests.cs | 8 ++++---- .../Agents/GitHubActionsTests.cs | 6 +++--- .../Agents/GitLabCiTests.cs | 8 ++++---- .../Agents/JenkinsTests.cs | 8 ++++---- .../Agents/MyGetTests.cs | 2 +- .../Agents/SpaceAutomationTests.cs | 4 ++-- .../Agents/TeamCityTests.cs | 2 +- .../ConfigurationFileLocatorTests.cs | 16 ++++++++-------- .../Configuration/ConfigurationProviderTests.cs | 6 +++--- .../Core/GitVersionToolDirectoryTests.cs | 6 +++--- src/GitVersion.Core.Tests/DocumentationTests.cs | 4 ++-- .../Extensions/StringFormatWithExtensionTests.cs | 2 +- .../VersionCalculation/VariableProviderTests.cs | 4 ++-- .../InvalidFileCheckerTests.cs | 6 +++--- .../Tasks/TestTaskBase.cs | 2 +- .../Output/AssemblyInfoFileUpdaterTests.cs | 8 ++++---- .../Output/ProjectFileUpdaterTests.cs | 10 +++++----- .../Output/WixFileTests.cs | 2 +- 28 files changed, 75 insertions(+), 75 deletions(-) diff --git a/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs b/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs index e38fec1482..408941ac50 100644 --- a/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs +++ b/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs @@ -8,7 +8,7 @@ namespace GitVersion.App.Tests; [TestFixture] public class ArgumentParserOnBuildServerTests : TestBase { - private IArgumentParser argumentParser; + private IArgumentParser argumentParser = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.App.Tests/ArgumentParserTests.cs b/src/GitVersion.App.Tests/ArgumentParserTests.cs index fe2d2b1e09..390b75d760 100644 --- a/src/GitVersion.App.Tests/ArgumentParserTests.cs +++ b/src/GitVersion.App.Tests/ArgumentParserTests.cs @@ -11,9 +11,9 @@ namespace GitVersion.App.Tests; [TestFixture] public class ArgumentParserTests : TestBase { - private IEnvironment environment; - private IArgumentParser argumentParser; - private IFileSystem fileSystem; + private IEnvironment environment = null!; + private IArgumentParser argumentParser = null!; + private IFileSystem fileSystem = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.App.Tests/UpdateWixVersionFileTests.cs b/src/GitVersion.App.Tests/UpdateWixVersionFileTests.cs index f3ba06a794..1bf37ea25a 100644 --- a/src/GitVersion.App.Tests/UpdateWixVersionFileTests.cs +++ b/src/GitVersion.App.Tests/UpdateWixVersionFileTests.cs @@ -8,7 +8,7 @@ namespace GitVersion.App.Tests; [Parallelizable(ParallelScope.None)] internal class UpdateWixVersionFileTests { - private string wixVersionFileName; + private string wixVersionFileName = null!; [SetUp] public void Setup() => this.wixVersionFileName = WixVersionFileUpdater.WixVersionFileName; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs index ed519a02e9..3f19c02126 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs @@ -9,8 +9,8 @@ public class AzurePipelinesTests : TestBase private const string key = "BUILD_BUILDNUMBER"; private const string logPrefix = "##vso[build.updatebuildnumber]"; - private IEnvironment environment; - private AzurePipelines buildServer; + private IEnvironment environment = null!; + private AzurePipelines buildServer = null!; [SetUp] public void SetEnvironmentVariableForTest() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs index 8e49f9a00c..29912ca80f 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs @@ -10,10 +10,10 @@ namespace GitVersion.BuildAgents.Tests; [TestFixture] public class BitBucketPipelinesTests : TestBase { - private IEnvironment environment; - private IFileSystem fileSystem; - private BitBucketPipelines buildServer; - private IServiceProvider sp; + private IEnvironment environment = null!; + private IFileSystem fileSystem = null!; + private BitBucketPipelines buildServer = null!; + private IServiceProvider sp = null!; [SetUp] public void SetEnvironmentVariableForTest() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs index 5cf00a2868..3e6fa731b2 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs @@ -6,8 +6,8 @@ namespace GitVersion.BuildAgents.Tests; [TestFixture] public class BuildKiteTests : TestBase { - private IEnvironment environment; - private BuildKite buildServer; + private IEnvironment environment = null!; + private BuildKite buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs index 372c013a46..370bbff8ef 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs @@ -11,8 +11,8 @@ namespace GitVersion.BuildAgents.Tests; [TestFixture] public class BuildServerBaseTests : TestBase { - private IVariableProvider buildServer; - private IServiceProvider sp; + private IVariableProvider buildServer = null!; + private IServiceProvider sp = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs index c79a15109f..eec4c9e3d8 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs @@ -10,10 +10,10 @@ namespace GitVersion.BuildAgents.Tests; [TestFixture] public sealed class CodeBuildTests : TestBase { - private IEnvironment environment; - private IFileSystem fileSystem; - private IServiceProvider sp; - private CodeBuild buildServer; + private IEnvironment environment = null!; + private IFileSystem fileSystem = null!; + private IServiceProvider sp = null!; + private CodeBuild buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs index 52d29a3f5e..c3d9615eb5 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs @@ -6,7 +6,7 @@ namespace GitVersion.BuildAgents.Tests; [TestFixture] public class ContinuaCiTests : TestBase { - private IServiceProvider sp; + private IServiceProvider sp = null!; [SetUp] public void SetUp() => this.sp = ConfigureServices(services => services.AddSingleton<ContinuaCi>()); diff --git a/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs index d0755055ce..5fc119534a 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs @@ -6,9 +6,9 @@ namespace GitVersion.BuildAgents.Tests; [TestFixture] public class DroneTests : TestBase { - private IEnvironment environment; - private IServiceProvider sp; - private Drone buildServer; + private IEnvironment environment = null!; + private IServiceProvider sp = null!; + private Drone buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs index c8c21edc27..c3ed5deb7f 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs @@ -9,10 +9,10 @@ namespace GitVersion.BuildAgents.Tests; public class EnvRunTests : TestBase { private const string EnvVarName = "ENVRUN_DATABASE"; - private string mFilePath; - private IEnvironment environment; - private IFileSystem fileSystem; - private EnvRun buildServer; + private string mFilePath = null!; + private IEnvironment environment = null!; + private IFileSystem fileSystem = null!; + private EnvRun buildServer = null!; [SetUp] public void SetEnvironmentVariableForTest() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs index 6e99383704..21fc128e1d 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs @@ -8,9 +8,9 @@ namespace GitVersion.BuildAgents.Tests; [TestFixture] public class GitHubActionsTests : TestBase { - private IEnvironment environment; - private IFileSystem fileSystem; - private GitHubActions buildServer; + private IEnvironment environment = null!; + private IFileSystem fileSystem = null!; + private GitHubActions buildServer = null!; private string? githubSetEnvironmentTempFilePath; [SetUp] diff --git a/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs index 5e6ebb9b40..2cfc212b6c 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs @@ -10,10 +10,10 @@ namespace GitVersion.BuildAgents.Tests; [TestFixture] public class GitLabCiTests : TestBase { - private IEnvironment environment; - private IFileSystem fileSystem; - private IServiceProvider sp; - private GitLabCi buildServer; + private IEnvironment environment = null!; + private IFileSystem fileSystem = null!; + private IServiceProvider sp = null!; + private GitLabCi buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs index bb82d431b2..a0974f5953 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs @@ -14,10 +14,10 @@ public class JenkinsTests : TestBase private const string branch = "GIT_BRANCH"; private const string localBranch = "GIT_LOCAL_BRANCH"; private const string pipelineBranch = "BRANCH_NAME"; - private IEnvironment environment; - private IFileSystem fileSystem; - private IServiceProvider sp; - private Jenkins buildServer; + private IEnvironment environment = null!; + private IFileSystem fileSystem = null!; + private IServiceProvider sp = null!; + private Jenkins buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs index a323328a7f..b6a448ebf8 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs @@ -6,7 +6,7 @@ namespace GitVersion.BuildAgents.Tests; [TestFixture] public class MyGetTests : TestBase { - private MyGet buildServer; + private MyGet buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs index 349fb6dce2..17ae39a379 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs @@ -6,8 +6,8 @@ namespace GitVersion.BuildAgents.Tests; [TestFixture] public class SpaceAutomationTests : TestBase { - private IEnvironment environment; - private SpaceAutomation buildServer; + private IEnvironment environment = null!; + private SpaceAutomation buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs index dfed323cd5..58044c0e61 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs @@ -6,7 +6,7 @@ namespace GitVersion.BuildAgents.Tests; [TestFixture] public class TeamCityTests : TestBase { - private TeamCity buildServer; + private TeamCity buildServer = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs index 83cf4dddbc..dbe566ad12 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs @@ -10,11 +10,11 @@ public static class ConfigurationFileLocatorTests { public class DefaultConfigFileLocatorTests : TestBase { - private string repoPath; - private string workingPath; - private IFileSystem fileSystem; - private ConfigurationProvider configurationProvider; - private IConfigurationFileLocator configFileLocator; + private string repoPath = null!; + private string workingPath = null!; + private IFileSystem fileSystem = null!; + private ConfigurationProvider configurationProvider = null!; + private IConfigurationFileLocator configFileLocator = null!; [SetUp] public void Setup() @@ -88,11 +88,11 @@ public void NoWarnOnLowercasedGitVersionYmlFile(string configurationFile) public class NamedConfigurationFileLocatorTests : TestBase { - private string repoPath; - private string workingPath; + private string repoPath = null!; + private string workingPath = null!; private IFileSystem fileSystem = null!; private IConfigurationFileLocator configFileLocator = null!; - private GitVersionOptions gitVersionOptions; + private GitVersionOptions gitVersionOptions = null!; private string ConfigFile => this.gitVersionOptions.ConfigurationInfo.ConfigurationFile!; [SetUp] diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs index 823cab01f2..9e1dda3335 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs @@ -11,9 +11,9 @@ namespace GitVersion.Configuration.Tests; [TestFixture] public class ConfigurationProviderTests : TestBase { - private string repoPath; - private ConfigurationProvider configurationProvider; - private IFileSystem fileSystem; + private string repoPath = null!; + private ConfigurationProvider configurationProvider = null!; + private IFileSystem fileSystem = null!; [SetUp] public void Setup() diff --git a/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs index 384db323ec..a2f26423ed 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs @@ -8,9 +8,9 @@ namespace GitVersion.Core.Tests; [TestFixture] public class GitVersionTaskDirectoryTests : TestBase { - private string gitDirectory; - private string workDirectory; - private IFileSystem fileSystem; + private string gitDirectory = null!; + private string workDirectory = null!; + private IFileSystem fileSystem = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.Core.Tests/DocumentationTests.cs b/src/GitVersion.Core.Tests/DocumentationTests.cs index 247af1aacd..eae8a34f56 100644 --- a/src/GitVersion.Core.Tests/DocumentationTests.cs +++ b/src/GitVersion.Core.Tests/DocumentationTests.cs @@ -9,8 +9,8 @@ namespace GitVersion.Core.Tests; [TestFixture] public class DocumentationTests : TestBase { - private FileSystem fileSystem; - private IDirectoryInfo docsDirectory; + private FileSystem fileSystem = null!; + private IDirectoryInfo docsDirectory = null!; [OneTimeSetUp] public void OneTimeSetUp() diff --git a/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs b/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs index 195e1c464c..d8ffb55789 100644 --- a/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs +++ b/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs @@ -7,7 +7,7 @@ namespace GitVersion.Core.Tests; [TestFixture] public class StringFormatWithExtensionTests { - private TestEnvironment environment; + private TestEnvironment environment = null!; [SetUp] public void Setup() => this.environment = new TestEnvironment(); diff --git a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs index 4d68661639..7d3ef2770f 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs @@ -10,8 +10,8 @@ namespace GitVersion.Core.Tests; [TestFixture] public class VariableProviderTests : TestBase { - private IVariableProvider variableProvider; - private List<string> logMessages; + private IVariableProvider variableProvider = null!; + private List<string> logMessages = null!; [SetUp] public void Setup() diff --git a/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs b/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs index 5253ca4ed9..169416e7f5 100644 --- a/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs +++ b/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs @@ -8,9 +8,9 @@ namespace GitVersion.MsBuild.Tests; [TestFixture] public class InvalidFileCheckerTests : TestBase { - private string projectDirectory; - private string projectFile; - private IFileSystem fileSystem; + private string projectDirectory = null!; + private string projectFile = null!; + private IFileSystem fileSystem = null!; [SetUp] public void CreateTemporaryProject() diff --git a/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs b/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs index b920cce4cd..c16fc5b1cb 100644 --- a/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs +++ b/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs @@ -14,7 +14,7 @@ namespace GitVersion.MsBuild.Tests.Tasks; public abstract class TestTaskBase : TestBase { - protected IFileSystem FileSystem; + protected IFileSystem FileSystem = null!; [SetUp] public void SetUp() diff --git a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs index 02b263a234..548c6ef238 100644 --- a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs @@ -14,10 +14,10 @@ namespace GitVersion.Output.Tests; [Parallelizable(ParallelScope.None)] public class AssemblyInfoFileUpdaterTests : TestBase { - private IVariableProvider variableProvider; - private ILog log; - private IFileSystem fileSystem; - private string workingDir; + private IVariableProvider variableProvider = null!; + private ILog log = null!; + private IFileSystem fileSystem = null!; + private string workingDir = null!; [OneTimeSetUp] public void OneTimeSetUp() => workingDir = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), nameof(AssemblyInfoFileUpdaterTests)); diff --git a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs index 6268d1a951..a9ba775480 100644 --- a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs @@ -16,11 +16,11 @@ namespace GitVersion.Output.Tests; public class ProjectFileUpdaterTests : TestBase { private const string TargetFramework = "net10.0"; - private IVariableProvider variableProvider; - private ILog log; - private IFileSystem fileSystem; - private ProjectFileUpdater projectFileUpdater; - private List<string> logMessages; + private IVariableProvider variableProvider = null!; + private ILog log = null!; + private IFileSystem fileSystem = null!; + private ProjectFileUpdater projectFileUpdater = null!; + private List<string> logMessages = null!; [SetUp] public void Setup() diff --git a/src/GitVersion.Output.Tests/Output/WixFileTests.cs b/src/GitVersion.Output.Tests/Output/WixFileTests.cs index 883dac290f..3c8a1901de 100644 --- a/src/GitVersion.Output.Tests/Output/WixFileTests.cs +++ b/src/GitVersion.Output.Tests/Output/WixFileTests.cs @@ -12,7 +12,7 @@ namespace GitVersion.Output.Tests; [Parallelizable(ParallelScope.None)] internal class WixFileTests : TestBase { - private string workingDir; + private string workingDir = null!; [OneTimeSetUp] public void OneTimeSetUp() => workingDir = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "WixFileTests"); From 96173e7a52eed27dbcd136e4b12288c134f74323 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Wed, 10 Jun 2026 22:48:04 +0200 Subject: [PATCH 341/358] build(core): add notnull constraint to CheckAndFormatString generic parameter Resolve nullability warnings by ensuring the generic type parameter T in VariableProvider is non-nullable. --- src/GitVersion.Core/VersionCalculation/VariableProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs index 7b55b400a3..3451f6a514 100644 --- a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs @@ -70,7 +70,7 @@ public GitVersionVariables GetVariablesFor( WeightedPreReleaseNumber: semverFormatValues.WeightedPreReleaseNumber); } - private string? CheckAndFormatString<T>(string? formatString, T source, string? defaultValue, string formatVarName) + private string? CheckAndFormatString<T>(string? formatString, T source, string? defaultValue, string formatVarName) where T : notnull { string? formattedString; From 4ed50333472b830248e1c8eeeaf0a32414e70080 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Thu, 11 Jun 2026 06:33:38 +0200 Subject: [PATCH 342/358] chore(claude): add C# LSP plugin and reorder settings Enable the official C# LSP plugin for Claude Code and reorganize the configuration file structure. --- .claude/settings.json | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/.claude/settings.json b/.claude/settings.json index d64d38f0fc..8c923f0678 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -1,17 +1,18 @@ { - "enabledPlugins": { - "dotnet-test@dotnet-agent-skills": true, - "dotnet-upgrade@dotnet-agent-skills": true - }, - "permissions": { - "allow": [ - "Bash(grep -E \"\\\\.cs$\")", - "Bash(dotnet --version)", - "Bash(dotnet build *)", - "Bash(dotnet test *)", - "Bash(dotnet clean *)", - "Bash(dotnet restore *)", - "Bash(dotnet format *)" - ] - } + "permissions": { + "allow": [ + "Bash(grep -E \"\\\\.cs$\")", + "Bash(dotnet --version)", + "Bash(dotnet build *)", + "Bash(dotnet test *)", + "Bash(dotnet clean *)", + "Bash(dotnet restore *)", + "Bash(dotnet format *)" + ] + }, + "enabledPlugins": { + "csharp-lsp@claude-plugins-official": true, + "dotnet-test@dotnet-agent-skills": true, + "dotnet-upgrade@dotnet-agent-skills": true + } } From 30c2fd5cfb9deb9ba4dc42624b8e22338e0df77f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2026 12:43:44 +0000 Subject: [PATCH 343/358] (deps): Bump Polly from 8.6.6 to 8.7.0 --- updated-dependencies: - dependency-name: Polly dependency-version: 8.7.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 5f612e24d4..24990c0221 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -21,7 +21,7 @@ <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageVersion> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> - <PackageVersion Include="Polly" Version="8.6.6" /> + <PackageVersion Include="Polly" Version="8.7.0" /> <PackageVersion Include="PolySharp" Version="1.16.0" /> <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> From 32983b43820ecc2190b65fae8c4f98fdccc8fc69 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Jun 2026 12:37:49 +0000 Subject: [PATCH 344/358] (deps): Bump Polly from 8.6.6 to 8.7.0 --- updated-dependencies: - dependency-name: Polly dependency-version: 8.7.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 526414e8e3..7ed8a4c916 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -21,7 +21,7 @@ <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.9" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.9" /> <PackageVersion Include="Microsoft.IO.Redist" Version="6.1.3" /> - <PackageVersion Include="Polly" Version="8.6.6" /> + <PackageVersion Include="Polly" Version="8.7.0" /> <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> From fb255507264d8161a02f36ca23d32201e4855059 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 12:47:12 +0000 Subject: [PATCH 345/358] (deps): Bump JsonSchema.Net.Generation from 7.3.9 to 7.3.10 --- updated-dependencies: - dependency-name: JsonSchema.Net.Generation dependency-version: 7.3.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 7ed8a4c916..9c32f0709b 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> <PackageVersion Include="Buildalyzer" Version="8.0.0" /> - <PackageVersion Include="JsonSchema.Net.Generation" Version="7.3.9" /> + <PackageVersion Include="JsonSchema.Net.Generation" Version="7.3.10" /> <PackageVersion Include="JunitXml.TestLogger" Version="8.0.0" /> <PackageVersion Include="MSBuild.ProjectCreation" Version="17.0.1" /> <PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="10.0.9" /> From a923ce46593bdf9bcc5ddf50bc6da28ddfe34b6a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 12:03:54 +0000 Subject: [PATCH 346/358] (build deps): bump actions/checkout Bumps the actions group with 1 update in the /.github/workflows directory: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 6 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> --- .github/workflows/_artifacts_linux.yml | 2 +- .github/workflows/_artifacts_windows.yml | 2 +- .github/workflows/_build.yml | 2 +- .github/workflows/_docker.yml | 2 +- .github/workflows/_docker_manifests.yml | 2 +- .github/workflows/_prepare.yml | 4 ++-- .github/workflows/_publish.yml | 2 +- .github/workflows/_unit_tests.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/docs.yml | 6 +++--- .github/workflows/format.yml | 2 +- .github/workflows/new-cli.yml | 2 +- .github/workflows/release.yml | 2 +- 14 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/_artifacts_linux.yml b/.github/workflows/_artifacts_linux.yml index 7f066c2bcf..2a2f2c62c9 100644 --- a/.github/workflows/_artifacts_linux.yml +++ b/.github/workflows/_artifacts_linux.yml @@ -29,7 +29,7 @@ jobs: dotnet_version: ${{ fromJson(inputs.dotnet_versions) }} steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/_artifacts_windows.yml b/.github/workflows/_artifacts_windows.yml index 14d2ba1be7..6079a2c6b7 100644 --- a/.github/workflows/_artifacts_windows.yml +++ b/.github/workflows/_artifacts_windows.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/_build.yml b/.github/workflows/_build.yml index a3edd1253b..b432a80349 100644 --- a/.github/workflows/_build.yml +++ b/.github/workflows/_build.yml @@ -16,7 +16,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/_docker.yml b/.github/workflows/_docker.yml index f7430748bb..6c58b56bff 100644 --- a/.github/workflows/_docker.yml +++ b/.github/workflows/_docker.yml @@ -35,7 +35,7 @@ jobs: dotnet_version: ${{ fromJson(inputs.dotnet_versions) }} steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/_docker_manifests.yml b/.github/workflows/_docker_manifests.yml index bdc362243e..bd89806de2 100644 --- a/.github/workflows/_docker_manifests.yml +++ b/.github/workflows/_docker_manifests.yml @@ -29,7 +29,7 @@ jobs: dotnet_version: ${{ fromJson(inputs.dotnet_versions) }} steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/_prepare.yml b/.github/workflows/_prepare.yml index 6a6bf82ec3..680c5b4dc1 100644 --- a/.github/workflows/_prepare.yml +++ b/.github/workflows/_prepare.yml @@ -23,7 +23,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Cache cake frosting id: cache-cake @@ -60,7 +60,7 @@ jobs: dotnet_versions: ${{ steps.set_matrix.outputs.dotnet_versions }} steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Restore State uses: ./.github/actions/cache-restore diff --git a/.github/workflows/_publish.yml b/.github/workflows/_publish.yml index 9145ca34d1..af9d462c07 100644 --- a/.github/workflows/_publish.yml +++ b/.github/workflows/_publish.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/_unit_tests.yml b/.github/workflows/_unit_tests.yml index a749c7c30a..146bf6522d 100644 --- a/.github/workflows/_unit_tests.yml +++ b/.github/workflows/_unit_tests.yml @@ -25,7 +25,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 - name: Restore State diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2a6297e955..bc832275bc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -149,7 +149,7 @@ jobs: CAN_PUBLISH: ${{ github.event_name == 'repository_dispatch' }} steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 944cca470c..00b84cf208 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -50,7 +50,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 503302df17..9d885daac9 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -37,7 +37,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 @@ -89,7 +89,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 @@ -130,7 +130,7 @@ jobs: GITHUB_USERNAME: ${{ github.actor }} steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index be0be7f8d3..28aa8540b0 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -40,7 +40,7 @@ jobs: name: DotNet Format steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Setup .NET SDK uses: actions/setup-dotnet@v5 diff --git a/.github/workflows/new-cli.yml b/.github/workflows/new-cli.yml index 3183ce0de0..65479803ca 100644 --- a/.github/workflows/new-cli.yml +++ b/.github/workflows/new-cli.yml @@ -41,7 +41,7 @@ jobs: name: Build & Test (new-cli) steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Setup .NET SDK uses: actions/setup-dotnet@v5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6a9599e401..cdb77cc68f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ jobs: contents: write steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Get version id: get-version From 1c605900dfbebae8f7ef924b754f74c2653f7284 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 12:36:52 +0000 Subject: [PATCH 347/358] (docs deps): bump js-yaml from 4.1.1 to 4.2.0 Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.1 to 4.2.0. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/commits) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.2.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> --- package-lock.json | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index cd984618f0..771e631f7b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3216,10 +3216,20 @@ "dev": true }, "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "peer": true, "dependencies": { "argparse": "^2.0.1" @@ -14212,9 +14222,9 @@ "dev": true }, "js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", "dev": true, "peer": true, "requires": { From 9f8d72e2caf9c9fde85111213f6500d4f997461c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jun 2026 12:19:03 +0000 Subject: [PATCH 348/358] (deps): Bump the microsoft group with 1 update Bumps Microsoft.NET.Test.Sdk from 18.6.0 to 18.7.0 --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.7.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.7.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- src/Directory.Packages.props | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 24990c0221..12960e433f 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -14,7 +14,7 @@ <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.5" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.9" /> <PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.9" /> - <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.6.0" /> + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.7.0" /> <PackageVersion Include="NUnit" Version="4.6.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.14.0"> <PrivateAssets>all</PrivateAssets> diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 9c32f0709b..c8652e0f4a 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -33,7 +33,7 @@ <PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="10.0.9" /> <PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.9" /> <PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.9" /> - <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.6.0" /> + <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.7.0" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" /> <PackageVersion Include="NSubstitute" Version="5.3.0" /> <PackageVersion Include="NUnit" Version="4.6.1" /> From e064f373a1f0541fd89731e2d4c57896ef698cea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jun 2026 12:50:40 +0000 Subject: [PATCH 349/358] (deps): Bump Scriban from 7.2.4 to 7.2.5 --- updated-dependencies: - dependency-name: Scriban dependency-version: 7.2.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- new-cli/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-cli/Directory.Packages.props b/new-cli/Directory.Packages.props index 24990c0221..31c5a0b9c0 100644 --- a/new-cli/Directory.Packages.props +++ b/new-cli/Directory.Packages.props @@ -26,7 +26,7 @@ <PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" /> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" /> <!-- specific packages --> - <PackageVersion Include="Scriban" Version="7.2.4" /> + <PackageVersion Include="Scriban" Version="7.2.5" /> <PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> From b5b3b2ddc37542c227219f9ad641048dbc679420 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jun 2026 17:23:55 +0000 Subject: [PATCH 350/358] (docs deps): bump undici from 6.24.0 to 6.27.0 Bumps [undici](https://github.com/nodejs/undici) from 6.24.0 to 6.27.0. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v6.24.0...v6.27.0) --- updated-dependencies: - dependency-name: undici dependency-version: 6.27.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 771e631f7b..79754d8d8e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11085,9 +11085,9 @@ } }, "node_modules/undici": { - "version": "6.24.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.0.tgz", - "integrity": "sha512-lVLNosgqo5EkGqh5XUDhGfsMSoO8K0BAN0TyJLvwNRSl4xWGZlCVYsAIpa/OpA3TvmnM01GWcoKmc3ZWo5wKKA==", + "version": "6.27.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz", + "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==", "dev": true, "engines": { "node": ">=18.17" @@ -20488,9 +20488,9 @@ } }, "undici": { - "version": "6.24.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.0.tgz", - "integrity": "sha512-lVLNosgqo5EkGqh5XUDhGfsMSoO8K0BAN0TyJLvwNRSl4xWGZlCVYsAIpa/OpA3TvmnM01GWcoKmc3ZWo5wKKA==", + "version": "6.27.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz", + "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==", "dev": true }, "unified-args": { From c49ce3170b3c96e36d140a21b018a5e6797cba48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 12:48:06 +0000 Subject: [PATCH 351/358] (deps): Bump SharpYaml from 3.10.0 to 3.10.2 --- updated-dependencies: - dependency-name: SharpYaml dependency-version: 3.10.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index c8652e0f4a..39fbc5ec75 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -39,7 +39,7 @@ <PackageVersion Include="NUnit" Version="4.6.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.14.0" /> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> - <PackageVersion Include="SharpYaml" Version="3.10.0" /> + <PackageVersion Include="SharpYaml" Version="3.10.2" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> <PackageVersion Include="System.Collections.Immutable" Version="10.0.9" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> From 779204828a534e888cea3ea072ec9f25ae22f1d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jun 2026 12:46:58 +0000 Subject: [PATCH 352/358] (deps): Bump SharpYaml from 3.10.2 to 3.11.0 --- updated-dependencies: - dependency-name: SharpYaml dependency-version: 3.11.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> --- src/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 39fbc5ec75..acd2408cb9 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -39,7 +39,7 @@ <PackageVersion Include="NUnit" Version="4.6.1" /> <PackageVersion Include="NUnit.Analyzers" Version="4.14.0" /> <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" /> - <PackageVersion Include="SharpYaml" Version="3.10.2" /> + <PackageVersion Include="SharpYaml" Version="3.11.0" /> <PackageVersion Include="Shouldly" Version="4.3.0" /> <PackageVersion Include="System.Collections.Immutable" Version="10.0.9" /> <PackageVersion Include="System.IO.Abstractions" Version="22.1.1" /> From 4dd5d06bcc3e540846e5324e2604b2f621a44993 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jun 2026 12:04:07 +0000 Subject: [PATCH 353/358] (build deps): bump actions/cache Bumps the actions group with 1 update in the /.github/workflows directory: [actions/cache](https://github.com/actions/cache). Updates `actions/cache` from 5 to 6 - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> --- .github/workflows/_prepare.yml | 4 ++-- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/docs.yml | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/_prepare.yml b/.github/workflows/_prepare.yml index 680c5b4dc1..75b0750922 100644 --- a/.github/workflows/_prepare.yml +++ b/.github/workflows/_prepare.yml @@ -27,14 +27,14 @@ jobs: - name: Cache cake frosting id: cache-cake - uses: actions/cache@v5 + uses: actions/cache@v6 with: path: run key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - name: Use cached tools id: cache-tools - uses: actions/cache@v5 + uses: actions/cache@v6 with: path: tools key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 00b84cf208..208fec3c83 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -62,7 +62,7 @@ jobs: - name: Cache cake frosting id: cache-cake - uses: actions/cache@v5 + uses: actions/cache@v6 with: path: run key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 9d885daac9..cd7f68ce68 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -43,14 +43,14 @@ jobs: - name: Cache cake frosting id: cache-cake - uses: actions/cache@v5 + uses: actions/cache@v6 with: path: run key: run-${{ runner.os }}-${{ hashFiles('./build/**') }} - name: Use cached tools id: cache-tools - uses: actions/cache@v5 + uses: actions/cache@v6 with: path: tools key: tools-${{ runner.os }}-${{ hashFiles('./build/**') }} @@ -64,7 +64,7 @@ jobs: - name: Cache Node Modules id: cache-node - uses: actions/cache@v5 + uses: actions/cache@v6 with: path: ${{ steps.cache-node-dir.outputs.dir }} key: node-${{ runner.os }}-${{ hashFiles('./package-lock.json') }} From 1155fab6f7a58400b479ebb0a887fb589bf84789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Ulsberg?= <asbjorn@ulsberg.no> Date: Fri, 26 Jun 2026 13:13:34 +0200 Subject: [PATCH 354/358] Exclude "Core" as a namespace provider `Core` should not be a namespace provider in JetBrains ReSharper and JetBrains Rider. --- .../GitVersion.Core.Tests.csproj.DotSettings | 2 ++ src/GitVersion.Core/GitVersion.Core.csproj.DotSettings | 4 ++++ 2 files changed, 6 insertions(+) create mode 100644 src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj.DotSettings create mode 100644 src/GitVersion.Core/GitVersion.Core.csproj.DotSettings diff --git a/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj.DotSettings b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj.DotSettings new file mode 100644 index 0000000000..77449f83fe --- /dev/null +++ b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj.DotSettings @@ -0,0 +1,2 @@ +<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> + <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=core/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> \ No newline at end of file diff --git a/src/GitVersion.Core/GitVersion.Core.csproj.DotSettings b/src/GitVersion.Core/GitVersion.Core.csproj.DotSettings new file mode 100644 index 0000000000..b542948fc7 --- /dev/null +++ b/src/GitVersion.Core/GitVersion.Core.csproj.DotSettings @@ -0,0 +1,4 @@ +<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> + <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=core/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=core_005Cabstractions/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=core_005Cexceptions/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> \ No newline at end of file From 4baed54ef1b9881fdc8b72f759bf8fc3ce70d23f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Ulsberg?= <asbjorn@ulsberg.no> Date: Fri, 26 Jun 2026 13:19:04 +0200 Subject: [PATCH 355/358] Exclude "Helpers" as namespace provider `Helpers` should not be a namespace provider in JetBrains ReSharper and JetBrains Rider. --- .../GitVersion.Core.Tests.csproj.DotSettings | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj.DotSettings b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj.DotSettings index 77449f83fe..f4f0b9072f 100644 --- a/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj.DotSettings +++ b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj.DotSettings @@ -1,2 +1,3 @@ <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> - <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=core/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> \ No newline at end of file + <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=core/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=helpers/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> \ No newline at end of file From 578ac5e8c897eecc3ceeaeca7e1e8f319073dbaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Ulsberg?= <asbjorn@ulsberg.no> Date: Fri, 26 Jun 2026 15:29:11 +0200 Subject: [PATCH 356/358] Namespace cleanup Clean up namespaces by removing `Core` and `Helpers`. --- .github/skills/dotnet-dev/SKILL.md | 2 +- .../ArgumentParserOnBuildServerTests.cs | 2 +- .../ArgumentParserTests.cs | 2 +- src/GitVersion.App.Tests/HelpWriterTests.cs | 2 +- .../Helpers/ExecutionResults.cs | 2 +- .../Helpers/ProgramFixture.cs | 2 +- .../JsonOutputOnBuildServerTest.cs | 2 +- .../PullRequestInBuildAgentTest.cs | 2 +- .../VersionWriterTests.cs | 2 +- .../ArgumentParserExtensions.cs | 1 - .../Agents/AzurePipelinesTests.cs | 2 +- .../Agents/BitBucketPipelinesTests.cs | 2 +- .../Agents/BuildKiteTests.cs | 2 +- .../Agents/BuildServerBaseTests.cs | 2 +- .../Agents/CodeBuildTests.cs | 2 +- .../Agents/ContinuaCiTests.cs | 2 +- .../Agents/DroneTests.cs | 2 +- .../Agents/EnvRunTests.cs | 2 +- .../Agents/GitHubActionsTests.cs | 2 +- .../Agents/GitLabCiTests.cs | 2 +- .../Agents/JenkinsTests.cs | 2 +- .../Agents/MyGetTests.cs | 2 +- .../Agents/SpaceAutomationTests.cs | 2 +- .../Agents/TeamCityTests.cs | 2 +- .../ConfigurationExtensionsTests.cs | 2 +- .../ConfigurationFileLocatorTests.cs | 2 +- .../ConfigurationProviderTests.cs | 3 +- .../Configuration/IgnoreConfigurationTests.cs | 2 +- .../Builders/ConfigurationBuilderBase.cs | 1 - .../Builders/GitFlowConfigurationBuilder.cs | 1 - .../GitHubFlowConfigurationBuilder.cs | 1 - .../TrunkBasedConfigurationBuilder.cs | 1 - .../GitVersionConfiguration.cs | 1 - src/GitVersion.Core.Tests/CommitDateTests.cs | 3 +- .../Core/DynamicRepositoryTests.cs | 3 +- .../Core/GitVersionExecutorTests.cs | 31 +++++++------- .../Core/GitVersionToolDirectoryTests.cs | 3 +- .../Core/RegexPatternTests.cs | 4 +- .../Core/RepositoryExtensionsTests.cs | 3 +- .../Core/RepositoryStoreTests.cs | 3 +- .../DocumentationTests.cs | 5 +-- .../GitRepositoryTestingExtensions.cs | 3 +- .../GitVersionVariablesExtensions.cs | 2 +- .../Extensions/MockCollectionExtensions.cs | 2 +- .../Extensions/ShouldlyExtensions.cs | 2 +- .../StringFormatWithExtensionTests.cs | 3 +- .../Formatting/DateFormatterTests.cs | 2 +- .../Formatting/EdgeCaseTests.cs | 6 +-- .../Formatting/FormattableFormatterTests.cs | 2 +- .../Formatting/NumericFormatterTests.cs | 2 +- .../Formatting/SanitizeEnvVarNameTests.cs | 4 +- .../Formatting/SanitizeFormatTests.cs | 4 +- .../Formatting/SanitizeMemberNameTests.cs | 4 +- .../Formatting/StringFormatterTests.cs | 2 +- .../Formatting/ValueFormatterTests.cs | 2 +- .../GitVersion.Core.Tests.csproj | 1 + .../Helpers/GitVersionContextBuilder.cs | 7 ++-- .../Helpers/GitVersionCoreTestModule.cs | 2 +- .../Helpers/ParticipantSanitizerTests.cs | 2 +- src/GitVersion.Core.Tests/Helpers/TestBase.cs | 2 +- .../Helpers/TestConsoleAdapter.cs | 2 +- .../Helpers/TestEnvironment.cs | 2 +- .../Helpers/TestLogAppender.cs | 2 +- .../Helpers/TestableGitVersionVariables.cs | 2 +- ...AlignGitFlowWithMainlineVersionStrategy.cs | 2 +- ...gnGitHubFlowWithMainlineVersionStrategy.cs | 2 +- .../BranchWithoutCommitScenarios.cs | 3 +- ...UsingMainlineVersionStrategyWithGitFlow.cs | 2 +- ...ngMainlineVersionStrategyWithGitHubFlow.cs | 2 +- ...ngTheBehaviorOfDifferentVersioningModes.cs | 2 +- .../ContinuousDeliveryTestScenarios.cs | 28 ++++++------- ...FeatureBranchFromAReleaseBranchScenario.cs | 42 +++++++++---------- .../IntegrationTests/DevelopScenarios.cs | 3 +- .../IntegrationTests/DocumentationSamples.cs | 3 +- .../DocumentationSamplesForGitFlow.cs | 2 +- .../DocumentationSamplesForGitHubFlow.cs | 2 +- .../FallbackVersionStrategyScenarios.cs | 3 +- .../FeatureBranchScenarios.cs | 3 +- .../IntegrationTests/GitflowScenarios.cs | 4 +- .../IntegrationTests/HotfixBranchScenarios.cs | 3 +- .../IntegrationTests/IgnoreCommitScenarios.cs | 3 +- .../IntegrationTests/MainScenarios.cs | 3 +- .../MainlineDevelopmentScenarios.cs | 3 +- .../IntegrationTests/OtherBranchScenarios.cs | 3 +- .../IntegrationTests/OtherScenarios.cs | 3 +- .../IntegrationTests/PerformanceScenarios.cs | 3 +- .../IntegrationTests/PullRequestScenarios.cs | 3 +- .../ReleaseBranchScenarios.cs | 3 +- .../RemoteRepositoryScenarios.cs | 3 +- ...omAReleaseBranchGetsDecrementedScenario.cs | 2 +- .../SupportBranchScenarios.cs | 3 +- .../SwitchingToGitFlowScenarios.cs | 3 +- .../IntegrationTests/TagCheckoutScenarios.cs | 3 +- .../VersionBumpingScenarios.cs | 3 +- .../VersionInCurrentBranchNameScenarios.cs | 3 +- .../VersionInMergedBranchNameScenarios.cs | 3 +- .../IntegrationTests/VersionInTagScenarios.cs | 3 +- .../IntegrationTests/WorktreeScenarios.cs | 3 +- .../Logging/LoggerTest.cs | 3 +- .../Logging/LoggingTests.cs | 2 +- ...elopBranchWithOneCommitMergedToMainWhen.cs | 2 +- ...gedToMainWhenMergedCommitTaggedAsStable.cs | 2 +- ...MergeCommitFromMainMergedBackToMainWhen.cs | 2 +- ...atureBranchWithAMergeCommitFromMainWhen.cs | 2 +- ...BranchWithOneCommitBranchedFromMainWhen.cs | 2 +- ...dFromMainWhenCommitAHasBumpMessageMajor.cs | 2 +- ...dFromMainWhenCommitAHasBumpMessageMinor.cs | 2 +- ...dFromMainWhenCommitAHasBumpMessagePatch.cs | 2 +- ...edFromMainWhenCommitATaggedAsPreRelease.cs | 2 +- ...romMainWhenCommitATaggedAsPreReleaseBar.cs | 2 +- ...romMainWhenCommitATaggedAsPreReleaseFoo.cs | 2 +- ...anchedFromMainWhenCommitATaggedAsStable.cs | 2 +- ...dFromMainWhenCommitBHasBumpMessageMajor.cs | 2 +- ...dFromMainWhenCommitBHasBumpMessageMinor.cs | 2 +- ...dFromMainWhenCommitBHasBumpMessagePatch.cs | 2 +- ...edFromMainWhenCommitBTaggedAsPreRelease.cs | 2 +- ...romMainWhenCommitBTaggedAsPreReleaseBar.cs | 2 +- ...romMainWhenCommitBTaggedAsPreReleaseFoo.cs | 2 +- ...anchedFromMainWhenCommitBTaggedAsStable.cs | 2 +- ...tureBranchWithOneCommitMergedToMainWhen.cs | 2 +- ...rgedToMainWhenCommitBTaggedAsPreRelease.cs | 2 +- ...dToMainWhenCommitBTaggedAsPreReleaseBar.cs | 2 +- ...dToMainWhenCommitBTaggedAsPreReleaseFoo.cs | 2 +- ...itMergedToMainWhenCommitBTaggedAsStable.cs | 2 +- ...oMainWithOneCommitBranchedToFeatureWhen.cs | 2 +- ...ow+GivenAFeatureBranchWithOneCommitWhen.cs | 2 +- ...hOneCommitWhenCommitHasBumpMessageMajor.cs | 2 +- ...hOneCommitWhenCommitHasBumpMessageMinor.cs | 2 +- ...hOneCommitWhenCommitHasBumpMessagePatch.cs | 2 +- ...thOneCommitWhenCommitTaggedAsPreRelease.cs | 2 +- ...neCommitWhenCommitTaggedAsPreReleaseBar.cs | 2 +- ...neCommitWhenCommitTaggedAsPreReleaseFoo.cs | 2 +- ...chWithOneCommitWhenCommitTaggedAsStable.cs | 2 +- ...nchWithThreeCommitsBranchedFromMainWhen.cs | 2 +- ...eBranchWithThreeCommitsMergedToMainWhen.cs | 2 +- ...GivenAFeatureBranchWithThreeCommitsWhen.cs | 2 +- ...ranchWithTwoCommitsBranchedFromMainWhen.cs | 2 +- ...ureBranchWithTwoCommitsMergedToMainWhen.cs | 2 +- ...ommitsWhenFirstCommitTaggedAsPreRelease.cs | 2 +- ...itsWhenFirstCommitTaggedAsPreReleaseBar.cs | 2 +- ...itsWhenFirstCommitTaggedAsPreReleaseFoo.cs | 2 +- ...ranchWithOneCommitBranchedToFeatureWhen.cs | 2 +- ...dToFeatureWhenCommitHasBumpMessageMajor.cs | 2 +- ...dToFeatureWhenCommitHasBumpMessageMinor.cs | 2 +- ...dToFeatureWhenCommitHasBumpMessagePatch.cs | 2 +- ...edToFeatureWhenCommitTaggedAsPreRelease.cs | 2 +- ...oFeatureWhenCommitTaggedAsPreReleaseBar.cs | 2 +- ...oFeatureWhenCommitTaggedAsPreReleaseFoo.cs | 2 +- ...anchedToFeatureWhenCommitTaggedAsStable.cs | 2 +- ...bFlow+GivenAMainBranchWithOneCommitWhen.cs | 2 +- ...hOneCommitWhenCommitHasBumpMessageMajor.cs | 2 +- ...hOneCommitWhenCommitHasBumpMessageMinor.cs | 2 +- ...hOneCommitWhenCommitHasBumpMessagePatch.cs | 2 +- ...thOneCommitWhenCommitTaggedAsPreRelease.cs | 2 +- ...neCommitWhenCommitTaggedAsPreReleaseBar.cs | 2 +- ...neCommitWhenCommitTaggedAsPreReleaseFoo.cs | 2 +- ...chWithOneCommitWhenCommitTaggedAsStable.cs | 2 +- ...ow+GivenAMainBranchWithThreeCommitsWhen.cs | 2 +- ...anchWithTwoCommitsBranchedToFeatureWhen.cs | 2 +- ...atureWhenFirstCommitHasBumpMessageMajor.cs | 2 +- ...atureWhenFirstCommitHasBumpMessageMinor.cs | 2 +- ...atureWhenFirstCommitHasBumpMessagePatch.cs | 2 +- ...eatureWhenFirstCommitTaggedAsPreRelease.cs | 2 +- ...ureWhenFirstCommitTaggedAsPreReleaseBar.cs | 2 +- ...ureWhenFirstCommitTaggedAsPreReleaseFoo.cs | 2 +- ...dToFeatureWhenFirstCommitTaggedAsStable.cs | 2 +- ...Flow+GivenAMainBranchWithTwoCommitsWhen.cs | 2 +- ...mmitsWhenFirstCommitHasBumpMessageMajor.cs | 2 +- ...mmitsWhenFirstCommitHasBumpMessageMinor.cs | 2 +- ...mmitsWhenFirstCommitHasBumpMessagePatch.cs | 2 +- ...ommitsWhenFirstCommitTaggedAsPreRelease.cs | 2 +- ...itsWhenFirstCommitTaggedAsPreReleaseBar.cs | 2 +- ...itsWhenFirstCommitTaggedAsPreReleaseFoo.cs | 2 +- ...TwoCommitsWhenFirstCommitTaggedAsStable.cs | 2 +- ...mitsWhenSecondCommitHasBumpMessageMajor.cs | 2 +- ...mitsWhenSecondCommitHasBumpMessageMinor.cs | 2 +- ...mitsWhenSecondCommitHasBumpMessagePatch.cs | 2 +- ...mmitsWhenSecondCommitTaggedAsPreRelease.cs | 2 +- ...tsWhenSecondCommitTaggedAsPreReleaseBar.cs | 2 +- ...tsWhenSecondCommitTaggedAsPreReleaseFoo.cs | 2 +- ...woCommitsWhenSecondCommitTaggedAsStable.cs | 2 +- .../MergeMessageTests.cs | 3 +- ...EffectiveBranchConfigurationFinderTests.cs | 3 +- .../JsonVersionBuilderTests.cs | 3 +- .../MainlineIterationTests.cs | 2 +- .../MinDateVersionFilterTests.cs | 3 +- .../NextVersionCalculatorTests.cs | 3 +- .../VersionCalculation/PathFilterTests.cs | 3 +- .../SemanticVersionTests.cs | 4 +- .../ShaVersionFilterTests.cs | 3 +- ...nfiguredNextVersionVersionStrategyTests.cs | 3 +- .../MergeMessageBaseVersionStrategyTests.cs | 3 +- ...ionInBranchNameBaseVersionStrategyTests.cs | 3 +- .../VariableProviderTests.cs | 3 +- .../VersionCalculation/VersionSourceTests.cs | 3 +- .../Configuration/IBranchConfiguration.cs | 1 - .../Core/Abstractions/IRepositoryStore.cs | 2 +- src/GitVersion.Core/Core/BranchRepository.cs | 3 +- .../Core/BranchesContainingCommitFinder.cs | 1 - .../Core/GitVersionContextFactory.cs | 2 - src/GitVersion.Core/Core/IBranchRepository.cs | 2 +- .../Core/ITaggedSemanticVersionRepository.cs | 2 +- .../Core/ITaggedSemanticVersionService.cs | 2 +- src/GitVersion.Core/Core/MergeBaseFinder.cs | 1 - src/GitVersion.Core/Core/MergeCommitFinder.cs | 1 - src/GitVersion.Core/Core/RegexPatterns.cs | 2 +- src/GitVersion.Core/Core/RepositoryStore.cs | 1 - .../Core/SourceBranchFinder.cs | 1 - .../Core/TaggedSemanticVersionRepository.cs | 3 +- .../Core/TaggedSemanticVersionService.cs | 3 +- .../Core/TaggedSemanticVersions.cs | 2 +- .../Extensions/ConfigurationExtensions.cs | 1 - .../Extensions/ReferenceNameExtensions.cs | 1 - .../Extensions/StringExtensions.cs | 1 - .../Formatting/InputSanitizer.cs | 1 - .../Formatting/StringFormatWithExtension.cs | 1 - src/GitVersion.Core/GitVersionCoreModule.cs | 2 - src/GitVersion.Core/Logging/Log.cs | 1 - src/GitVersion.Core/MergeMessage.cs | 1 - src/GitVersion.Core/PublicAPI.Shipped.txt | 40 +++++++++--------- src/GitVersion.Core/SemVer/SemanticVersion.cs | 1 - .../SemVer/SemanticVersionBuildMetaData.cs | 1 - .../SemVer/SemanticVersionPreReleaseTag.cs | 1 - .../Caching/GitVersionCacheKeyFactory.cs | 1 - .../EffectiveBranchConfigurationFinder.cs | 1 - .../IncrementStrategyFinder.cs | 2 - .../SemanticVersionFormatValues.cs | 1 - .../VersionCalculation/VariableProvider.cs | 1 - .../ContinuousDeliveryVersionCalculator.cs | 1 - .../ContinuousDeploymentVersionCalculator.cs | 1 - .../ManualDeploymentVersionCalculator.cs | 1 - .../NextVersionCalculator.cs | 1 - .../VersionCalculatorBase.cs | 1 - .../FallbacktVersionStrategy.cs | 1 - .../MainlineVersionStrategy.cs | 2 - .../MergeMessageVersionStrategy.cs | 1 - .../TaggedCommitVersionStrategy.cs | 1 - .../TrackReleaseBranchesVersionStrategy.cs | 2 - .../Helpers/MsBuildExeFixture.cs | 2 +- .../Helpers/MsBuildTaskFixture.cs | 2 +- .../InvalidFileCheckerTests.cs | 2 +- .../Tasks/TestTaskBase.cs | 3 +- .../Helpers/AssemblyInfoFileHelper.cs | 2 +- .../Output/AssemblyFileVersionTests.cs | 2 +- .../Output/AssemblyInfoFileUpdaterTests.cs | 3 +- .../Output/FormatArgumentTests.cs | 3 +- .../Output/GitVersionInfoGeneratorTests.cs | 2 +- .../InformationalVersionBuilderTests.cs | 2 +- .../Output/ProjectFileUpdaterTests.cs | 3 +- .../Output/WixFileTests.cs | 2 +- .../AssemblyInfo/AssemblyInfoFileUpdater.cs | 1 - .../Helpers/ParticipantSanitizer.cs | 1 - 252 files changed, 286 insertions(+), 389 deletions(-) diff --git a/.github/skills/dotnet-dev/SKILL.md b/.github/skills/dotnet-dev/SKILL.md index a7a83ab48f..baa8d73a92 100644 --- a/.github/skills/dotnet-dev/SKILL.md +++ b/.github/skills/dotnet-dev/SKILL.md @@ -151,7 +151,7 @@ public string RequiredProperty { get; set; } = string.Empty; Use file-scoped namespaces: ```csharp -namespace GitVersion.Core; +namespace GitVersion; public class MyClass { diff --git a/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs b/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs index 408941ac50..916d1aadc2 100644 --- a/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs +++ b/src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs @@ -1,7 +1,7 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.OutputVariables; +using GitVersion.Tests; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/ArgumentParserTests.cs b/src/GitVersion.App.Tests/ArgumentParserTests.cs index 390b75d760..38d1ee81d2 100644 --- a/src/GitVersion.App.Tests/ArgumentParserTests.cs +++ b/src/GitVersion.App.Tests/ArgumentParserTests.cs @@ -1,9 +1,9 @@ using System.IO.Abstractions; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Helpers; using GitVersion.Logging; +using GitVersion.Tests; using GitVersion.VersionCalculation; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/HelpWriterTests.cs b/src/GitVersion.App.Tests/HelpWriterTests.cs index 32fe2206af..a304c67152 100644 --- a/src/GitVersion.App.Tests/HelpWriterTests.cs +++ b/src/GitVersion.App.Tests/HelpWriterTests.cs @@ -1,5 +1,5 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; +using GitVersion.Tests; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/Helpers/ExecutionResults.cs b/src/GitVersion.App.Tests/Helpers/ExecutionResults.cs index 6e436ffc9e..11035333c4 100644 --- a/src/GitVersion.App.Tests/Helpers/ExecutionResults.cs +++ b/src/GitVersion.App.Tests/Helpers/ExecutionResults.cs @@ -1,6 +1,6 @@ -using GitVersion.Core.Tests; using GitVersion.Extensions; using GitVersion.OutputVariables; +using GitVersion.Tests; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs b/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs index 305a284158..4ac9c290de 100644 --- a/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs +++ b/src/GitVersion.App.Tests/Helpers/ProgramFixture.cs @@ -1,6 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Logging; +using GitVersion.Tests; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs b/src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs index d9f8f1a3ec..11c77880f5 100644 --- a/src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs +++ b/src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs @@ -1,7 +1,7 @@ using GitVersion.Agents; -using GitVersion.Core.Tests; using GitVersion.Helpers; using GitVersion.Testing.Extensions; +using GitVersion.Tests; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs b/src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs index c0dbf74ee0..6530705ac5 100644 --- a/src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs +++ b/src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs @@ -1,10 +1,10 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Helpers; using GitVersion.Output; using GitVersion.Testing.Extensions; +using GitVersion.Tests; using LibGit2Sharp; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App.Tests/VersionWriterTests.cs b/src/GitVersion.App.Tests/VersionWriterTests.cs index 4971b05269..b267f3f62f 100644 --- a/src/GitVersion.App.Tests/VersionWriterTests.cs +++ b/src/GitVersion.App.Tests/VersionWriterTests.cs @@ -1,5 +1,5 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; +using GitVersion.Tests; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; diff --git a/src/GitVersion.App/ArgumentParserExtensions.cs b/src/GitVersion.App/ArgumentParserExtensions.cs index 286849c44b..6716e633d8 100644 --- a/src/GitVersion.App/ArgumentParserExtensions.cs +++ b/src/GitVersion.App/ArgumentParserExtensions.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; using GitVersion.Helpers; namespace GitVersion; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs index 3f19c02126..e63945b96e 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs @@ -1,5 +1,5 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Tests; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs index 29912ca80f..050c961410 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs @@ -1,8 +1,8 @@ using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Tests; using GitVersion.VersionCalculation; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs index 3e6fa731b2..91eff468c9 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs @@ -1,5 +1,5 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Tests; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs index 370bbff8ef..bb67c41e22 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs @@ -1,9 +1,9 @@ using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Logging; using GitVersion.OutputVariables; +using GitVersion.Tests; using GitVersion.VersionCalculation; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs index eec4c9e3d8..207e591beb 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs @@ -1,8 +1,8 @@ using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Tests; using GitVersion.VersionCalculation; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs index c3d9615eb5..f01ad827be 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs @@ -1,5 +1,5 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Tests; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs index 5fc119534a..202d8a898a 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs @@ -1,5 +1,5 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Tests; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs index c3ed5deb7f..2d918ebe27 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs @@ -1,7 +1,7 @@ using System.IO.Abstractions; using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Tests; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs index 21fc128e1d..8e16b89053 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs @@ -1,7 +1,7 @@ using System.IO.Abstractions; using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Tests; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs index 2cfc212b6c..53ce45d385 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs @@ -1,8 +1,8 @@ using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Tests; using GitVersion.VersionCalculation; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs index a0974f5953..8b8f0c0d64 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs @@ -1,8 +1,8 @@ using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; +using GitVersion.Tests; using GitVersion.VersionCalculation; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs index b6a448ebf8..ccbf85c75a 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs @@ -1,5 +1,5 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Tests; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs index 17ae39a379..06eba79bbb 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs @@ -1,5 +1,5 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Tests; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs b/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs index 58044c0e61..c5ba3550e4 100644 --- a/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs +++ b/src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs @@ -1,5 +1,5 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Tests; namespace GitVersion.BuildAgents.Tests; diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs index 057e72762f..8eac64ec19 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs @@ -1,5 +1,5 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Git; +using GitVersion.Tests; namespace GitVersion.Configuration.Tests; diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs index dbe566ad12..537ca4abfd 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs @@ -1,7 +1,7 @@ using System.IO.Abstractions; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; +using GitVersion.Tests; namespace GitVersion.Configuration.Tests; diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs index 9e1dda3335..db02bc5553 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs @@ -1,9 +1,8 @@ using System.IO.Abstractions; using System.Runtime.CompilerServices; -using GitVersion.Core; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; +using GitVersion.Tests; using GitVersion.VersionCalculation; namespace GitVersion.Configuration.Tests; diff --git a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs index 799a3c502f..282580671e 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs @@ -1,5 +1,5 @@ using System.Globalization; -using GitVersion.Core.Tests.Helpers; +using GitVersion.Tests; using GitVersion.VersionCalculation; using SharpYaml; diff --git a/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs b/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs index 785adf220d..aaf63342db 100644 --- a/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs +++ b/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Helpers; using GitVersion.VersionCalculation; diff --git a/src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs index b45967ac4c..e077c3cdf1 100644 --- a/src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; using GitVersion.VersionCalculation; namespace GitVersion.Configuration; diff --git a/src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs index 3a95c130d4..95115179f1 100644 --- a/src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; using GitVersion.VersionCalculation; namespace GitVersion.Configuration; diff --git a/src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs index 608bcc1533..8f052e7851 100644 --- a/src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; using GitVersion.VersionCalculation; namespace GitVersion.Configuration; diff --git a/src/GitVersion.Configuration/GitVersionConfiguration.cs b/src/GitVersion.Configuration/GitVersionConfiguration.cs index 7e35964d78..29c9187fcd 100644 --- a/src/GitVersion.Configuration/GitVersionConfiguration.cs +++ b/src/GitVersion.Configuration/GitVersionConfiguration.cs @@ -1,6 +1,5 @@ using System.Globalization; using GitVersion.Configuration.Attributes; -using GitVersion.Core; using GitVersion.VersionCalculation; using static GitVersion.Configuration.ConfigurationConstants; diff --git a/src/GitVersion.Core.Tests/CommitDateTests.cs b/src/GitVersion.Core.Tests/CommitDateTests.cs index 35c8241c8d..709a2d2686 100644 --- a/src/GitVersion.Core.Tests/CommitDateTests.cs +++ b/src/GitVersion.Core.Tests/CommitDateTests.cs @@ -1,7 +1,6 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class CommitDateTests : TestBase diff --git a/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs b/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs index 44de42672e..11f2947dfa 100644 --- a/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs +++ b/src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs @@ -1,8 +1,7 @@ using System.IO.Abstractions; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class DynamicRepositoryTests : TestBase diff --git a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs index 9173866a28..02fe1cf961 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs @@ -1,7 +1,6 @@ using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Helpers; @@ -10,7 +9,7 @@ using GitVersion.VersionCalculation.Caching; using LibGit2Sharp; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] [Parallelizable(ParallelScope.None)] @@ -69,7 +68,7 @@ public void CacheKeySameAfterReNormalizing() this.sp = GetServiceProvider(gitVersionOptions, environment: environment); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); var preparer = this.sp.GetRequiredService<IGitPreparer>(); var repositoryInfo = this.sp.GetRequiredService<IGitRepositoryInfo>(); @@ -126,7 +125,7 @@ public void CacheKeyForWorktree() this.sp = GetServiceProvider(gitVersionOptions); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); var preparer = this.sp.GetRequiredService<IGitPreparer>(); var repositoryInfo = this.sp.GetRequiredService<IGitRepositoryInfo>(); @@ -416,7 +415,7 @@ public void CalculateVersionFromWorktreeHead() // Setup this.fileSystem = new FileSystem(); using var fixture = new EmptyRepositoryFixture(); - var repoDir = fileSystem.DirectoryInfo.New(fixture.RepositoryPath); + var repoDir = this.fileSystem.DirectoryInfo.New(fixture.RepositoryPath); var worktreePath = FileSystemHelper.Path.Combine(repoDir.Parent?.FullName, $"{repoDir.Name}-v1"); fixture.Repository.MakeATaggedCommit("v1.0.0"); @@ -461,9 +460,9 @@ public void CalculateVersionVariables_TwoBranchHasSameCommitHeadDetachedAndNotTa this.sp = GetServiceProvider(gitVersionOptions, environment: environment); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); - var sut = sp.GetRequiredService<IGitVersionCalculateTool>(); + var sut = this.sp.GetRequiredService<IGitVersionCalculateTool>(); // Execute & Verify var exception = Assert.Throws<WarningException>(() => sut.CalculateVersionVariables()); @@ -491,9 +490,9 @@ public void CalculateVersionVariables_TwoBranchHasSameCommitHeadDetachedAndTagge this.sp = GetServiceProvider(gitVersionOptions, environment: environment); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); - var sut = sp.GetRequiredService<IGitVersionCalculateTool>(); + var sut = this.sp.GetRequiredService<IGitVersionCalculateTool>(); // Execute var version = sut.CalculateVersionVariables(); @@ -520,9 +519,9 @@ public void CalculateVersionVariables_ShallowFetch_ThrowException() this.sp = GetServiceProvider(gitVersionOptions, environment: environment); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); - var sut = sp.GetRequiredService<IGitVersionCalculateTool>(); + var sut = this.sp.GetRequiredService<IGitVersionCalculateTool>(); // Execute & Verify var exception = Assert.Throws<WarningException>(() => sut.CalculateVersionVariables()); @@ -548,9 +547,9 @@ public void CalculateVersionVariables_ShallowFetch_WithAllowShallow_ShouldNotThr this.sp = GetServiceProvider(gitVersionOptions, environment: environment); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); - var sut = sp.GetRequiredService<IGitVersionCalculateTool>(); + var sut = this.sp.GetRequiredService<IGitVersionCalculateTool>(); // Execute var version = sut.CalculateVersionVariables(); @@ -584,8 +583,8 @@ public void CalculateVersionVariables_WithLimitedCloneDepth_AndAllowShallowTrue_ environment.SetEnvironmentVariable(AzurePipelines.EnvironmentVariableName, "true"); this.sp = GetServiceProvider(gitVersionOptions, environment: environment); - sp.DiscoverRepository(); - var sut = sp.GetRequiredService<IGitVersionCalculateTool>(); + this.sp.DiscoverRepository(); + var sut = this.sp.GetRequiredService<IGitVersionCalculateTool>(); // Execute var version = sut.CalculateVersionVariables(); @@ -625,7 +624,7 @@ private IGitVersionCalculateTool GetGitVersionCalculator(GitVersionOptions gitVe this.log = this.sp.GetRequiredService<ILog>(); this.gitVersionCacheProvider = (GitVersionCacheProvider)this.sp.GetRequiredService<IGitVersionCacheProvider>(); - sp.DiscoverRepository(); + this.sp.DiscoverRepository(); return this.sp.GetRequiredService<IGitVersionCalculateTool>(); } diff --git a/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs index a2f26423ed..b56a98f086 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs @@ -1,9 +1,8 @@ using System.IO.Abstractions; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using LibGit2Sharp; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class GitVersionTaskDirectoryTests : TestBase diff --git a/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs b/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs index ebe0dcd89c..214a623b4a 100644 --- a/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs +++ b/src/GitVersion.Core.Tests/Core/RegexPatternTests.cs @@ -1,7 +1,7 @@ using System.Text.RegularExpressions; -using static GitVersion.Core.RegexPatterns.AssemblyVersion; +using static GitVersion.RegexPatterns.AssemblyVersion; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; public class RegexPatternsTests { diff --git a/src/GitVersion.Core.Tests/Core/RepositoryExtensionsTests.cs b/src/GitVersion.Core.Tests/Core/RepositoryExtensionsTests.cs index 5e9addaab6..2da5b54a9f 100644 --- a/src/GitVersion.Core.Tests/Core/RepositoryExtensionsTests.cs +++ b/src/GitVersion.Core.Tests/Core/RepositoryExtensionsTests.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Git; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class RepositoryExtensionsTests : TestBase diff --git a/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs b/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs index d6fdfeb0fd..17b7461c1d 100644 --- a/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs +++ b/src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs @@ -1,9 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Git; using GitVersion.Logging; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class RepositoryStoreTests : TestBase diff --git a/src/GitVersion.Core.Tests/DocumentationTests.cs b/src/GitVersion.Core.Tests/DocumentationTests.cs index eae8a34f56..def7fd4bd3 100644 --- a/src/GitVersion.Core.Tests/DocumentationTests.cs +++ b/src/GitVersion.Core.Tests/DocumentationTests.cs @@ -1,10 +1,9 @@ using System.IO.Abstractions; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.OutputVariables; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class DocumentationTests : TestBase @@ -62,7 +61,7 @@ private string ReadDocumentationFile(string relativeDocumentationFilePath) { var documentationFilePath = FileSystemHelper.Path.Combine(this.docsDirectory.FullName, relativeDocumentationFilePath); // Normalize path separators and such. - documentationFilePath = fileSystem.FileInfo.New(documentationFilePath).FullName; + documentationFilePath = this.fileSystem.FileInfo.New(documentationFilePath).FullName; if (!this.fileSystem.File.Exists(documentationFilePath)) { diff --git a/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs b/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs index 7b6171debc..2bc7efa5aa 100644 --- a/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs @@ -1,6 +1,5 @@ using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Helpers; @@ -9,7 +8,7 @@ using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; public static class GitRepositoryTestingExtensions { diff --git a/src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs b/src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs index acfd773093..e33a8df081 100644 --- a/src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs @@ -1,7 +1,7 @@ using System.IO.Abstractions; using GitVersion.OutputVariables; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; public static class GitVersionVariablesExtensions { diff --git a/src/GitVersion.Core.Tests/Extensions/MockCollectionExtensions.cs b/src/GitVersion.Core.Tests/Extensions/MockCollectionExtensions.cs index 3343652479..2e47ae716c 100644 --- a/src/GitVersion.Core.Tests/Extensions/MockCollectionExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/MockCollectionExtensions.cs @@ -1,4 +1,4 @@ -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; public static class MockCollectionExtensions { diff --git a/src/GitVersion.Core.Tests/Extensions/ShouldlyExtensions.cs b/src/GitVersion.Core.Tests/Extensions/ShouldlyExtensions.cs index 437b8a3ad0..9c7a407480 100644 --- a/src/GitVersion.Core.Tests/Extensions/ShouldlyExtensions.cs +++ b/src/GitVersion.Core.Tests/Extensions/ShouldlyExtensions.cs @@ -1,4 +1,4 @@ -namespace GitVersion.Core.Tests.Extensions; +namespace GitVersion.Tests.Extensions; public static class ShouldlyExtensions { diff --git a/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs b/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs index d8ffb55789..3e67be55a7 100644 --- a/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs +++ b/src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs @@ -1,8 +1,7 @@ using System.Globalization; -using GitVersion.Core.Tests.Helpers; using GitVersion.Formatting; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class StringFormatWithExtensionTests diff --git a/src/GitVersion.Core.Tests/Formatting/DateFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/DateFormatterTests.cs index dd89018c81..417c61d6b9 100644 --- a/src/GitVersion.Core.Tests/Formatting/DateFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/DateFormatterTests.cs @@ -1,7 +1,7 @@ using System.Globalization; using GitVersion.Formatting; -namespace GitVersion.Core.Tests.Formatting; +namespace GitVersion.Tests.Formatting; [TestFixture] public class DateFormatterTests diff --git a/src/GitVersion.Core.Tests/Formatting/EdgeCaseTests.cs b/src/GitVersion.Core.Tests/Formatting/EdgeCaseTests.cs index bd7e955aa2..52b2d614bb 100644 --- a/src/GitVersion.Core.Tests/Formatting/EdgeCaseTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/EdgeCaseTests.cs @@ -1,7 +1,7 @@ -using GitVersion.Core.Tests.Extensions; -using GitVersion.Formatting; +using GitVersion.Formatting; +using GitVersion.Tests.Extensions; -namespace GitVersion.Core.Tests.Formatting; +namespace GitVersion.Tests.Formatting; [TestFixture] public class EdgeCaseTests diff --git a/src/GitVersion.Core.Tests/Formatting/FormattableFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/FormattableFormatterTests.cs index 8b0f75f048..1404c18b20 100644 --- a/src/GitVersion.Core.Tests/Formatting/FormattableFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/FormattableFormatterTests.cs @@ -1,7 +1,7 @@ using System.Globalization; using GitVersion.Formatting; -namespace GitVersion.Core.Tests.Formatting; +namespace GitVersion.Tests.Formatting; [TestFixture] public class FormattableFormatterTests diff --git a/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs index dae044b694..04c2176e74 100644 --- a/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/NumericFormatterTests.cs @@ -1,6 +1,6 @@ using GitVersion.Formatting; -namespace GitVersion.Core.Tests.Formatting; +namespace GitVersion.Tests.Formatting; [TestFixture] public class NumericFormatterTests diff --git a/src/GitVersion.Core.Tests/Formatting/SanitizeEnvVarNameTests.cs b/src/GitVersion.Core.Tests/Formatting/SanitizeEnvVarNameTests.cs index 4732fceb3e..e45e872b4e 100644 --- a/src/GitVersion.Core.Tests/Formatting/SanitizeEnvVarNameTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/SanitizeEnvVarNameTests.cs @@ -1,8 +1,8 @@ using System.Diagnostics.CodeAnalysis; -using GitVersion.Core.Tests.Extensions; using GitVersion.Formatting; +using GitVersion.Tests.Extensions; -namespace GitVersion.Core.Tests.Formatting; +namespace GitVersion.Tests.Formatting; [SuppressMessage("Style", "IDE0059:Unnecessary assignment of a value")] [SuppressMessage("Style", "IDE0060:Remove unused parameter")] diff --git a/src/GitVersion.Core.Tests/Formatting/SanitizeFormatTests.cs b/src/GitVersion.Core.Tests/Formatting/SanitizeFormatTests.cs index 632bbb4a6d..67da937637 100644 --- a/src/GitVersion.Core.Tests/Formatting/SanitizeFormatTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/SanitizeFormatTests.cs @@ -1,8 +1,8 @@ using System.Diagnostics.CodeAnalysis; -using GitVersion.Core.Tests.Extensions; using GitVersion.Formatting; +using GitVersion.Tests.Extensions; -namespace GitVersion.Core.Tests.Formatting; +namespace GitVersion.Tests.Formatting; [SuppressMessage("Style", "IDE0059:Unnecessary assignment of a value")] [SuppressMessage("Style", "IDE0060:Remove unused parameter")] diff --git a/src/GitVersion.Core.Tests/Formatting/SanitizeMemberNameTests.cs b/src/GitVersion.Core.Tests/Formatting/SanitizeMemberNameTests.cs index 1aae91f1b4..eebe473648 100644 --- a/src/GitVersion.Core.Tests/Formatting/SanitizeMemberNameTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/SanitizeMemberNameTests.cs @@ -1,8 +1,8 @@ using System.Diagnostics.CodeAnalysis; -using GitVersion.Core.Tests.Extensions; using GitVersion.Formatting; +using GitVersion.Tests.Extensions; -namespace GitVersion.Core.Tests.Formatting; +namespace GitVersion.Tests.Formatting; [SuppressMessage("Style", "IDE0059:Unnecessary assignment of a value")] [SuppressMessage("Style", "IDE0060:Remove unused parameter")] diff --git a/src/GitVersion.Core.Tests/Formatting/StringFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/StringFormatterTests.cs index 7c9024fe79..b9f3c0a27d 100644 --- a/src/GitVersion.Core.Tests/Formatting/StringFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/StringFormatterTests.cs @@ -1,6 +1,6 @@ using GitVersion.Formatting; -namespace GitVersion.Core.Tests.Formatting; +namespace GitVersion.Tests.Formatting; [TestFixture] public class StringFormatterTests diff --git a/src/GitVersion.Core.Tests/Formatting/ValueFormatterTests.cs b/src/GitVersion.Core.Tests/Formatting/ValueFormatterTests.cs index 675377215e..9950cac172 100644 --- a/src/GitVersion.Core.Tests/Formatting/ValueFormatterTests.cs +++ b/src/GitVersion.Core.Tests/Formatting/ValueFormatterTests.cs @@ -1,7 +1,7 @@ using System.Globalization; using GitVersion.Formatting; -namespace GitVersion.Core.Tests.Formatting; +namespace GitVersion.Tests.Formatting; [TestFixture] public class ValueFormatterTests diff --git a/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj index 446ac51a69..7d0ca0d4df 100644 --- a/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj +++ b/src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj @@ -4,6 +4,7 @@ <DebugType>full</DebugType> <Optimize>false</Optimize> <DebugSymbols>true</DebugSymbols> + <RootNamespace>GitVersion.Tests</RootNamespace> </PropertyGroup> <ItemGroup> diff --git a/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs b/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs index b1444b2014..150b91d831 100644 --- a/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs +++ b/src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs @@ -1,8 +1,7 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; public class GitVersionContextBuilder : IDisposable { @@ -56,8 +55,8 @@ public void Build() { var repo = this.repository ?? CreateRepository(); - emptyRepositoryFixture = new(); - var options = Options.Create(new GitVersionOptions { WorkingDirectory = emptyRepositoryFixture.RepositoryPath, ConfigurationInfo = { OverrideConfiguration = this.overrideConfiguration } }); + this.emptyRepositoryFixture = new(); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = this.emptyRepositoryFixture.RepositoryPath, ConfigurationInfo = { OverrideConfiguration = this.overrideConfiguration } }); this.ServicesProvider = ConfigureServices(services => { diff --git a/src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs b/src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs index 1c9b3773f3..757ee5b63d 100644 --- a/src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs +++ b/src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs @@ -5,7 +5,7 @@ using GitVersion.Logging; using GitVersion.Output; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; public class GitVersionCoreTestModule : IGitVersionModule { diff --git a/src/GitVersion.Core.Tests/Helpers/ParticipantSanitizerTests.cs b/src/GitVersion.Core.Tests/Helpers/ParticipantSanitizerTests.cs index ad5f854bd3..450e19c08b 100644 --- a/src/GitVersion.Core.Tests/Helpers/ParticipantSanitizerTests.cs +++ b/src/GitVersion.Core.Tests/Helpers/ParticipantSanitizerTests.cs @@ -1,6 +1,6 @@ using GitVersion.Testing.Helpers; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; [TestFixture] public class ParticipantSanitizerTests diff --git a/src/GitVersion.Core.Tests/Helpers/TestBase.cs b/src/GitVersion.Core.Tests/Helpers/TestBase.cs index e9b6d677ea..9bf765f5ce 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestBase.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestBase.cs @@ -1,7 +1,7 @@ using GitVersion.Extensions; using GitVersion.Git; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; public class TestBase { diff --git a/src/GitVersion.Core.Tests/Helpers/TestConsoleAdapter.cs b/src/GitVersion.Core.Tests/Helpers/TestConsoleAdapter.cs index 3ae5935b28..e9ebe1496b 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestConsoleAdapter.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestConsoleAdapter.cs @@ -1,7 +1,7 @@ using GitVersion.Helpers; using GitVersion.Logging; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; public class TestConsoleAdapter(StringBuilder sb) : IConsole { diff --git a/src/GitVersion.Core.Tests/Helpers/TestEnvironment.cs b/src/GitVersion.Core.Tests/Helpers/TestEnvironment.cs index 99eb6b2090..75762951f9 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestEnvironment.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestEnvironment.cs @@ -1,4 +1,4 @@ -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; public class TestEnvironment : IEnvironment { diff --git a/src/GitVersion.Core.Tests/Helpers/TestLogAppender.cs b/src/GitVersion.Core.Tests/Helpers/TestLogAppender.cs index 5bbd6cae9d..9ad9057845 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestLogAppender.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestLogAppender.cs @@ -1,6 +1,6 @@ using GitVersion.Logging; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; public class TestLogAppender(Action<string> logAction) : ILogAppender { diff --git a/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs b/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs index 046eb906c2..7cdc8641e9 100644 --- a/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs +++ b/src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs @@ -1,6 +1,6 @@ using GitVersion.OutputVariables; -namespace GitVersion.Core.Tests.Helpers; +namespace GitVersion.Tests; internal record TestableGitVersionVariables() : GitVersionVariables( AssemblySemFileVer: "", diff --git a/src/GitVersion.Core.Tests/IntegrationTests/AlignGitFlowWithMainlineVersionStrategy.cs b/src/GitVersion.Core.Tests/IntegrationTests/AlignGitFlowWithMainlineVersionStrategy.cs index 5b7484c6b1..7f44fd0ff0 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/AlignGitFlowWithMainlineVersionStrategy.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/AlignGitFlowWithMainlineVersionStrategy.cs @@ -2,7 +2,7 @@ using GitVersion.VersionCalculation; // ReSharper disable ConvertIfStatementToConditionalTernaryExpression -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] [Parallelizable(ParallelScope.All)] diff --git a/src/GitVersion.Core.Tests/IntegrationTests/AlignGitHubFlowWithMainlineVersionStrategy.cs b/src/GitVersion.Core.Tests/IntegrationTests/AlignGitHubFlowWithMainlineVersionStrategy.cs index 3a9aae8822..5938d15ba8 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/AlignGitHubFlowWithMainlineVersionStrategy.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/AlignGitHubFlowWithMainlineVersionStrategy.cs @@ -2,7 +2,7 @@ using GitVersion.VersionCalculation; // ReSharper disable ConvertIfStatementToConditionalTernaryExpression -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] [Parallelizable(ParallelScope.All)] diff --git a/src/GitVersion.Core.Tests/IntegrationTests/BranchWithoutCommitScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/BranchWithoutCommitScenarios.cs index d28ddad75d..7bb9ae4283 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/BranchWithoutCommitScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/BranchWithoutCommitScenarios.cs @@ -1,8 +1,7 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class BranchWithoutCommitScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitFlow.cs b/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitFlow.cs index ec307dd2b8..973e2e90c9 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitFlow.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitFlow.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] [Parallelizable(ParallelScope.All)] diff --git a/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitHubFlow.cs b/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitHubFlow.cs index 4a66feb476..c741bc996d 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitHubFlow.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/CompareTheDifferentWhenUsingMainlineVersionStrategyWithGitHubFlow.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] [Parallelizable(ParallelScope.All)] diff --git a/src/GitVersion.Core.Tests/IntegrationTests/ComparingTheBehaviorOfDifferentVersioningModes.cs b/src/GitVersion.Core.Tests/IntegrationTests/ComparingTheBehaviorOfDifferentVersioningModes.cs index f1d4833705..469e841ce5 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/ComparingTheBehaviorOfDifferentVersioningModes.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/ComparingTheBehaviorOfDifferentVersioningModes.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; /// <summary> /// - For mode 1 the main-releases are especially not marked with dedicated tags. diff --git a/src/GitVersion.Core.Tests/IntegrationTests/ContinuousDeliveryTestScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/ContinuousDeliveryTestScenarios.cs index fc3168c637..6dc41afbb6 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/ContinuousDeliveryTestScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/ContinuousDeliveryTestScenarios.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class ContinuousDeliveryTestScenarios @@ -115,7 +115,7 @@ public void ShouldUseTaggedVersionWhenGreaterThanConfiguredNextVersion() public void ShouldCalculateTheCorrectVersionWhenMergingFromMainToFeatureBranch() { // *94f03f8 55 minutes ago(HEAD -> main) - // |\ + // |\ // | *b1f41a4 56 minutes ago // |/ // *ec77f9c 58 minutes ago @@ -168,7 +168,7 @@ public void ShouldCalculateTheCorrectVersionWhenMergingFromMainToFeatureBranch() public void ShouldCalculateTheCorrectVersionWhenMergingFromDevelopToFeatureBranch() { // *2c475bf 55 minutes ago(HEAD -> develop) - // |\ + // |\ // | *e05365d 56 minutes ago // |/ // *67acc03 58 minutes ago(main) @@ -220,7 +220,7 @@ public void ShouldCalculateTheCorrectVersionWhenMergingFromReleaseToFeatureBranc { // *b1e5593 53 minutes ago(HEAD -> release/ 1.0.0) // *8752695 55 minutes ago - // |\ + // |\ // | *0965b88 56 minutes ago // |/ // *f63a536 58 minutes ago(main) @@ -272,7 +272,7 @@ public void ShouldCalculateTheCorrectVersionWhenMergingFromReleaseToFeatureBranc public void ShouldFallbackToTheVersionOnDevelopLikeTheReleaseWasNeverCreatedWhenReleaseHasBeenCanceled() { // *8f062c7 49 minutes ago(HEAD -> develop) - // |\ + // |\ // | *bda6ba8 52 minutes ago // | *6f5cf19 54 minutes ago // * | 3b20f15 50 minutes ago @@ -354,16 +354,16 @@ public void ShouldFallbackToTheVersionOnDevelopLikeTheReleaseWasNeverCreatedWhen public void ShouldConsiderTheMergeCommitFromMainToDevelopWhenReleaseHasBeenMergedAndTaggedOnMain() { // * 5d13120 48 minutes ago (HEAD -> develop) - // |\ + // |\ // | * 8ddd9b0 49 minutes ago (tag: 1.0.0, main) - // | |\ - // | | * 4b826b8 52 minutes ago - // | | * d4b0047 54 minutes ago - // * | | 0457671 50 minutes ago - // | |/ - // |/| - // * | 5f31f30 56 minutes ago - // |/ + // | |\ + // | | * 4b826b8 52 minutes ago + // | | * d4b0047 54 minutes ago + // * | | 0457671 50 minutes ago + // | |/ + // |/| + // * | 5f31f30 56 minutes ago + // |/ // * 252971e 58 minutes ago var configuration = GitFlowConfigurationBuilder.New diff --git a/src/GitVersion.Core.Tests/IntegrationTests/CreatingAFeatureBranchFromAReleaseBranchScenario.cs b/src/GitVersion.Core.Tests/IntegrationTests/CreatingAFeatureBranchFromAReleaseBranchScenario.cs index bf2341ea9e..ae7dec7e3c 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/CreatingAFeatureBranchFromAReleaseBranchScenario.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/CreatingAFeatureBranchFromAReleaseBranchScenario.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.Testing.Extensions; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; /// <summary> /// Version not generated correct when creating a feature branch from a release branch #3101 @@ -14,7 +14,7 @@ public void ShouldTreatTheFeatureBranchLikeTheFirstReleaseBranchWhenItHasBeenBra { // *f59b84f in the future(HEAD -> release/ 1.0.0) // *d0f4669 in the future - // |\ + // |\ // | *471acec in the future // |/ // | *266fa68 in the future(release/ 1.1.0, main) @@ -90,7 +90,7 @@ public void ShouldTreatTheFeatureBranchNotLikeTheReleaseBranchWhenItHasBeenBranc { // *19ed1e8 in the future(HEAD -> release/ 1.0.0) // *1684169 in the future - // |\ + // |\ // | *07bd75c in the future // |/ // | *ff34213 in the future(release/ 1.1.0, develop) @@ -172,7 +172,7 @@ public void ShouldTreatTheHotfixBranchLikeTheFirstReleaseBranchWhenItHasBeenBran { // *2b9c8bf 42 minutes ago(HEAD -> release/ 1.0.0) // *66cfc66 44 minutes ago - // |\ + // |\ // | *e9978b9 45 minutes ago // |/ // | *c2b96e5 47 minutes ago(release/ 1.1.0, main|develop) @@ -240,7 +240,7 @@ public void ShouldTreatTheHotfixBranchLikeTheFirstReleaseBranchWhenItHasBeenBran { // *2b9c8bf 42 minutes ago(HEAD -> release/ 1.0.0) // *66cfc66 44 minutes ago - // |\ + // |\ // | *e9978b9 45 minutes ago // |/ // | *c2b96e5 47 minutes ago(release/ 1.1.0, main|develop) @@ -309,14 +309,14 @@ public void ShouldTreatTheHotfixBranchLikeTheFirstReleaseBranchWhenItHasBeenBran public void ShouldTreatTheFeatureBranchLikeTheFirstReleaseBranchWhenItHasBeenBranchedFromFirstButNotFromTheSecondReleaseBranchFromMain() { // * 3807c66 49 minutes ago (HEAD -> release/1.0.0) - // * da32145 51 minutes ago - // |\ - // | * 6a89f35 52 minutes ago - // |/ - // * 19f2980 56 minutes ago + // * da32145 51 minutes ago + // |\ + // | * 6a89f35 52 minutes ago + // |/ + // * 19f2980 56 minutes ago // | * 2282a59 54 minutes ago (release/1.1.0, main) - // |/ - // * d7b7c5e 58 minutes ago + // |/ + // * d7b7c5e 58 minutes ago var configuration = GitFlowConfigurationBuilder.New.Build(); @@ -380,7 +380,7 @@ public void ShouldTreatTheFeatureBranchLikeTheFirstReleaseBranchWhenItHasBeenBra { // *1525ad0 38 minutes ago(HEAD -> release/ 1.0.0) // *476fc51 40 minutes ago - // |\ + // |\ // | *c8c5030 41 minutes ago // |/ // *d91061d 45 minutes ago @@ -453,7 +453,7 @@ public void ShouldTreatTheHotfixBranchLikeTheFirstReleaseBranchWhenItHasBeenBran { // *1525ad0 38 minutes ago(HEAD -> release/ 1.0.0) // *476fc51 40 minutes ago - // |\ + // |\ // | *c8c5030 41 minutes ago // |/ // *d91061d 45 minutes ago @@ -523,7 +523,7 @@ public void ShouldTreatTheHotfixBranchLikeTheFirstReleaseBranchWhenItHasBeenBran { // *1525ad0 38 minutes ago(HEAD -> release/ 1.0.0) // *476fc51 40 minutes ago - // |\ + // |\ // | *c8c5030 41 minutes ago // |/ // *d91061d 45 minutes ago @@ -596,7 +596,7 @@ public void ShouldTreatTheFeatureBranchLikeTheReleaseBranchWhenItHasBeenBranched { // *588f0de in the future(HEAD -> release/ 1.0.0) // *56f660c in the future - // |\ + // |\ // | *9450fb0 in the future // |/ // *9e557cd in the future @@ -659,7 +659,7 @@ public void ShouldTreatTheMergeFromReleaseToDevelopLikeTheReleaseBranchHasNeverB { // *809eaa7 in the future(HEAD -> develop) // *46e2cb8 in the future - // |\ + // |\ // | *08bd8ff in the future // | *9b741de in the future // * | 13206fd in the future @@ -733,9 +733,9 @@ public void ShouldTreatTheMergeFromReleaseToDevelopLikeTheReleaseBranchHasNeverB public void ShouldOnlyTrackTheCommitsOnDevelopBranchForNextReleaseWhenReleaseHasBeenShippedToProduction() { // *9afb0ca in the future(HEAD -> develop) - // |\ + // |\ // | *90c96f2 in the future(tag: 1.0.0, main) - // | |\ + // | |\ // | | *7de3d63 in the future // | | *2ccf33b in the future // * | | e050757 in the future @@ -822,9 +822,9 @@ public void ShouldOnlyTrackTheCommitsOnDevelopBranchForNextReleaseWhenReleaseHas public void ShouldNotConsiderTheMergeCommitFromReleaseToMainWhenCommitHasNotBeenTagged() { // *457e0cd in the future(HEAD -> develop) - // |\ + // |\ // | *d9da657 in the future(tag: 1.0.0, main) - // | |\ + // | |\ // | | *026a6cd in the future // | | *7f5de6e in the future // * | | 3db6e6f in the future diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs index f137a05c52..826fcdbfe6 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DevelopScenarios.cs @@ -1,10 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class DevelopScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs index 92f40572c4..f12cca9ab3 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamples.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class DocumentationSamples : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitFlow.cs b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitFlow.cs index fadd1a4db5..634a201ac4 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitFlow.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitFlow.cs @@ -3,7 +3,7 @@ using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class DocumentationSamplesForGitFlow diff --git a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitHubFlow.cs b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitHubFlow.cs index 5ce48685e8..642c68c12e 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitHubFlow.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/DocumentationSamplesForGitHubFlow.cs @@ -3,7 +3,7 @@ using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class DocumentationSamplesForGitHubFlow diff --git a/src/GitVersion.Core.Tests/IntegrationTests/FallbackVersionStrategyScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/FallbackVersionStrategyScenarios.cs index 9076c18b5c..2a0b999bda 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/FallbackVersionStrategyScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/FallbackVersionStrategyScenarios.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class FallbackVersionStrategyScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/FeatureBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/FeatureBranchScenarios.cs index c904627794..2dd69830da 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/FeatureBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/FeatureBranchScenarios.cs @@ -1,10 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class FeatureBranchScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/GitflowScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/GitflowScenarios.cs index a466855b43..ec2cdf9325 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/GitflowScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/GitflowScenarios.cs @@ -1,6 +1,4 @@ -using GitVersion.Core.Tests.Helpers; - -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class GitflowScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/HotfixBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/HotfixBranchScenarios.cs index bda5d9b777..f334ced802 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/HotfixBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/HotfixBranchScenarios.cs @@ -1,9 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class HotfixBranchScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/IgnoreCommitScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/IgnoreCommitScenarios.cs index fcb1cc9b02..8fa98f7b06 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/IgnoreCommitScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/IgnoreCommitScenarios.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class IgnoreCommitScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs index 1bac81dc8e..7e12383aaa 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/MainScenarios.cs @@ -1,10 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class MainScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs index 087f09cd38..65063680b6 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/MainlineDevelopmentScenarios.cs @@ -1,9 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; public class MainlineDevelopmentScenarios : TestBase { diff --git a/src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs index 52fdcb1862..f54fc69fe8 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/OtherBranchScenarios.cs @@ -1,10 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class OtherBranchScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs index eb1014596d..02bdf51742 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/OtherScenarios.cs @@ -1,14 +1,13 @@ using System.Globalization; using System.IO.Abstractions; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Helpers; using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class OtherScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/PerformanceScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/PerformanceScenarios.cs index cb92616ac8..3fc792c54f 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/PerformanceScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/PerformanceScenarios.cs @@ -1,7 +1,6 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; public class PerformanceScenarios : TestBase { diff --git a/src/GitVersion.Core.Tests/IntegrationTests/PullRequestScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/PullRequestScenarios.cs index 53d0dfb117..bdb2749544 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/PullRequestScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/PullRequestScenarios.cs @@ -1,9 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class PullRequestScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/ReleaseBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/ReleaseBranchScenarios.cs index 9d8bb5385e..f05a915d82 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/ReleaseBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/ReleaseBranchScenarios.cs @@ -1,9 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class ReleaseBranchScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs index ac92ff6710..ac1e4b4150 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/RemoteRepositoryScenarios.cs @@ -1,9 +1,8 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class RemoteRepositoryScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/SemVerOfAFeatureBranchStartedFromAReleaseBranchGetsDecrementedScenario.cs b/src/GitVersion.Core.Tests/IntegrationTests/SemVerOfAFeatureBranchStartedFromAReleaseBranchGetsDecrementedScenario.cs index b150e366b6..aad1785d23 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/SemVerOfAFeatureBranchStartedFromAReleaseBranchGetsDecrementedScenario.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/SemVerOfAFeatureBranchStartedFromAReleaseBranchGetsDecrementedScenario.cs @@ -1,4 +1,4 @@ -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; /// <summary> /// [Bug] SemVer of a feature branch started from a release branch gets decremented #3151 diff --git a/src/GitVersion.Core.Tests/IntegrationTests/SupportBranchScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/SupportBranchScenarios.cs index 45c0b672e2..4ea353009f 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/SupportBranchScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/SupportBranchScenarios.cs @@ -1,9 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class SupportBranchScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/SwitchingToGitFlowScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/SwitchingToGitFlowScenarios.cs index d634a722fd..71da44d23d 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/SwitchingToGitFlowScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/SwitchingToGitFlowScenarios.cs @@ -1,8 +1,7 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class SwitchingToGitFlowScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/TagCheckoutScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/TagCheckoutScenarios.cs index 9e1cdfae04..34af0e7459 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/TagCheckoutScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/TagCheckoutScenarios.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class TagCheckoutScenarios diff --git a/src/GitVersion.Core.Tests/IntegrationTests/VersionBumpingScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/VersionBumpingScenarios.cs index aba3dff795..cb26b5441c 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/VersionBumpingScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/VersionBumpingScenarios.cs @@ -1,10 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Testing.Extensions; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class VersionBumpingScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs index 387559ff4e..bd286b7f4b 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/VersionInCurrentBranchNameScenarios.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class VersionInCurrentBranchNameScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs index 975faead87..90830d7144 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/VersionInMergedBranchNameScenarios.cs @@ -1,8 +1,7 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class VersionInMergedBranchNameScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/IntegrationTests/VersionInTagScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/VersionInTagScenarios.cs index f03603c417..a6fcd7b6e5 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/VersionInTagScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/VersionInTagScenarios.cs @@ -1,7 +1,6 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] internal class VersionInTagScenarios diff --git a/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs b/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs index 42aa6c89fc..81e4d58816 100644 --- a/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs +++ b/src/GitVersion.Core.Tests/IntegrationTests/WorktreeScenarios.cs @@ -1,10 +1,9 @@ using System.IO.Abstractions; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Testing.Extensions; using LibGit2Sharp; -namespace GitVersion.Core.Tests.IntegrationTests; +namespace GitVersion.Tests.IntegrationTests; [TestFixture] public class WorktreeScenarios : TestBase diff --git a/src/GitVersion.Core.Tests/Logging/LoggerTest.cs b/src/GitVersion.Core.Tests/Logging/LoggerTest.cs index 25fd83ab0a..567f0db4e8 100644 --- a/src/GitVersion.Core.Tests/Logging/LoggerTest.cs +++ b/src/GitVersion.Core.Tests/Logging/LoggerTest.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Logging; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class LoggerTest : TestBase diff --git a/src/GitVersion.Core.Tests/Logging/LoggingTests.cs b/src/GitVersion.Core.Tests/Logging/LoggingTests.cs index 9a8b45ab8a..b2e6f32133 100644 --- a/src/GitVersion.Core.Tests/Logging/LoggingTests.cs +++ b/src/GitVersion.Core.Tests/Logging/LoggingTests.cs @@ -1,6 +1,6 @@ using GitVersion.Logging; -namespace GitVersion.Core.Tests.Logging; +namespace GitVersion.Tests.Logging; [TestFixture] public class LoggingTests diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs index 7780f7d084..5a7c1c757e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs index e45a381dac..3c7149e275 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs index 842d8f19f2..2e29bbd647 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs index f7f6cd8437..f9a340db58 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs index 76dc7520de..13edf511e0 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs index de661ff7b2..a5bf16a28d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs index 53f954be4a..5cc5cdc70c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs index 0cb2b73865..9fdcd0bbdb 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs index 18894fe890..2fcdceb434 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs index 81054fe4a8..17ccb92679 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs index 5455497e3d..55ca3c42a8 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs index 1f1586b34f..f1cb41ba1c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs index 14d40e34c9..c94a456932 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs index 51b7fe0c5b..504210627c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs index 942b0d9328..9d63f43c79 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs index 84f5def54a..630edff397 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs index 4c255b3c7c..11cb8cdd47 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs index 4ebfd02892..9b6d4bc87e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs index 2796e9bf66..aef1763976 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs index c6682d3614..2212b1f0a8 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs index 90e957ace6..c5c4878dc4 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs index 169403fd26..27e83f4489 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs index 9821b13fab..5101c0f10b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs index 080fa49b0a..ecffe59cda 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs index ee5830cb24..52a0a25483 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs index 765d132e25..2115f91500 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs index 4a1eb2c06f..fd1959e765 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs index 8fb5adb627..4db7d97d3a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs index 8545c8067a..021df98d57 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs index c4c9e5fe03..fc4d75f4b5 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs index 837d175729..5f22209f71 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs index 8ff3cb8a67..742cb19615 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs index 0fcf8346a1..978f5f06f5 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs index 6f3e4f71cd..9d92f9e2d2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs index 897726a863..fe66bd9de7 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs index 659a552d84..45498ae21a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs index 5bcd275e03..158744435b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs index 346f1fcfee..7a88c1a8b6 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs index 66277de202..013d076307 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs index d187c7c867..e700542b93 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs index 56db17c002..72faaba14e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs index a81a72668b..c68632ddf2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs index 2c92353369..259abe3886 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs index 0945585a28..108269101e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs index 36c93e2b98..5ede897eb7 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs index 27dcb59c75..78a45c023e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs index 07648d8455..5c6dbd215d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs index 0ab3f5a1a5..b388648a52 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs index e2f9621354..3be50ac378 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs index 3749bd3d57..7795ef2a9e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs index a6351d2b33..48f1a0526e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs index a32d8e1e37..bf132fba57 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs index a5a28fce8d..b5b1d03947 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs index 09b616fd81..4d33d326c5 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs index fb208b9e36..867b82c5b4 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs index 0a7508610d..8a03fa20ab 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs index b02821e85e..a053643119 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs index a2bb7d135c..3f31702ae7 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs index 3e2f0d2990..71b28a2c18 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs index f9d8386e55..570eab8b35 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs index 5007342249..99d4f12eff 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs index 55c8360b34..3f51f3e681 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs index 8e8b596e1e..9c7bcabfa2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs index f37f78e1ce..12edd46576 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs index b9dc12278e..7a17efff78 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs index a8e9e23331..08147cc020 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs index a12147ad13..e0870287f2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs index 62cf8f596c..9af2a5c2c6 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs index f3c203bffc..448dfd3d55 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs index 7e5dab7025..59b99dc22f 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs index 9b3d7e0678..005f2ebb60 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs index c1fdc78f51..4054022768 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs index 878ca59750..c4dc69eb10 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs index 8e6608c1ef..a2b37126fb 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs index 77464e7a95..e15fdd10d3 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs index 06b4a776c9..c1ff1be838 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs index d1c8aab464..2a713a147d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs index 9b43116068..3eb23abdcf 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs index 57bf37457d..11f2194718 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs index 60d93e059f..c1a1c786e2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs index 7f96a45d2a..aee9545108 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.Mainline; +namespace GitVersion.Tests.Mainline; internal partial class MainlineScenariosWithAGitHubFlow { diff --git a/src/GitVersion.Core.Tests/MergeMessageTests.cs b/src/GitVersion.Core.Tests/MergeMessageTests.cs index 5f452e9f87..c071e76c6e 100644 --- a/src/GitVersion.Core.Tests/MergeMessageTests.cs +++ b/src/GitVersion.Core.Tests/MergeMessageTests.cs @@ -1,7 +1,6 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class MergeMessageTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/EffectiveBranchConfigurationFinderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/EffectiveBranchConfigurationFinderTests.cs index ba682c3543..bcb18b4694 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/EffectiveBranchConfigurationFinderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/EffectiveBranchConfigurationFinderTests.cs @@ -1,10 +1,9 @@ -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Git; using GitVersion.Logging; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.VersionCalculation; +namespace GitVersion.Tests.VersionCalculation; [TestFixture] public class EffectiveBranchConfigurationFinderTests diff --git a/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs index aa80aec5bc..d81f84a5ee 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs @@ -1,9 +1,8 @@ using System.Globalization; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class JsonVersionBuilderTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/MainlineIterationTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/MainlineIterationTests.cs index cb1abcf6c5..966e7a73e8 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/MainlineIterationTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/MainlineIterationTests.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.VersionCalculation.Mainline; -namespace GitVersion.Core.Tests.VersionCalculation; +namespace GitVersion.Tests.VersionCalculation; [TestFixture] public class MainlineIterationTests diff --git a/src/GitVersion.Core.Tests/VersionCalculation/MinDateVersionFilterTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/MinDateVersionFilterTests.cs index 909c77e094..facf4ab722 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/MinDateVersionFilterTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/MinDateVersionFilterTests.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class MinDateVersionFilterTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs index 64422c2da3..949999cc7e 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs @@ -1,9 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; using LibGit2Sharp; -namespace GitVersion.Core.Tests.VersionCalculation; +namespace GitVersion.Tests.VersionCalculation; public class NextVersionCalculatorTests : TestBase { diff --git a/src/GitVersion.Core.Tests/VersionCalculation/PathFilterTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/PathFilterTests.cs index efffb84e18..75d118c221 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/PathFilterTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/PathFilterTests.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class PathFilterTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/SemanticVersionTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/SemanticVersionTests.cs index 2d0279a15c..6e0432b5e2 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/SemanticVersionTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/SemanticVersionTests.cs @@ -1,6 +1,4 @@ -using GitVersion.Core.Tests.Helpers; - -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class SemanticVersionTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/ShaVersionFilterTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/ShaVersionFilterTests.cs index e4d4b219f1..5a6a0a0af7 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/ShaVersionFilterTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/ShaVersionFilterTests.cs @@ -1,7 +1,6 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class ShaVersionFilterTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs index 819bcdb19c..053d09f7ef 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs @@ -1,9 +1,8 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.VersionCalculation.Strategies; +namespace GitVersion.Tests.VersionCalculation.Strategies; [TestFixture] public class ConfiguredNextVersionVersionStrategyTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs index 48009baf1d..69588f6e53 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs @@ -1,10 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.VersionCalculation.Strategies; +namespace GitVersion.Tests.VersionCalculation.Strategies; [TestFixture] public class MergeMessageBaseVersionStrategyTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs index 868baca593..1b66fed42b 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs @@ -1,10 +1,9 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests.VersionCalculation.Strategies; +namespace GitVersion.Tests.VersionCalculation.Strategies; [TestFixture] public class VersionInBranchNameBaseVersionStrategyTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs index 7d3ef2770f..f46fb3af8a 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs @@ -1,11 +1,10 @@ using System.Globalization; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Git; using GitVersion.Logging; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class VariableProviderTests : TestBase diff --git a/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs b/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs index bf97221b8f..f78d87089b 100644 --- a/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs +++ b/src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs @@ -1,8 +1,7 @@ -using GitVersion.Core.Tests.Helpers; using GitVersion.Git; using GitVersion.VersionCalculation; -namespace GitVersion.Core.Tests; +namespace GitVersion.Tests; [TestFixture] public class VersionSourceTests : TestBase diff --git a/src/GitVersion.Core/Configuration/IBranchConfiguration.cs b/src/GitVersion.Core/Configuration/IBranchConfiguration.cs index 11957c1900..fb16bc580a 100644 --- a/src/GitVersion.Core/Configuration/IBranchConfiguration.cs +++ b/src/GitVersion.Core/Configuration/IBranchConfiguration.cs @@ -1,5 +1,4 @@ using System.Diagnostics.CodeAnalysis; -using GitVersion.Core; using GitVersion.VersionCalculation; namespace GitVersion.Configuration; diff --git a/src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs b/src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs index a781f0a403..5e897e1f93 100644 --- a/src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs +++ b/src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.Git; -namespace GitVersion.Common; +namespace GitVersion; /// <summary>Provides high-level read access to a Git repository, exposing the objects and queries needed for version calculation.</summary> public interface IRepositoryStore diff --git a/src/GitVersion.Core/Core/BranchRepository.cs b/src/GitVersion.Core/Core/BranchRepository.cs index 6d54eafe53..9f467f63a9 100644 --- a/src/GitVersion.Core/Core/BranchRepository.cs +++ b/src/GitVersion.Core/Core/BranchRepository.cs @@ -1,9 +1,8 @@ -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; -namespace GitVersion.Core; +namespace GitVersion; internal sealed class BranchRepository(IRepositoryStore repositoryStore) : IBranchRepository { diff --git a/src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs b/src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs index d078714e98..032d469d58 100644 --- a/src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs +++ b/src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Logging; diff --git a/src/GitVersion.Core/Core/GitVersionContextFactory.cs b/src/GitVersion.Core/Core/GitVersionContextFactory.cs index a315d33092..acf1e4ba16 100644 --- a/src/GitVersion.Core/Core/GitVersionContextFactory.cs +++ b/src/GitVersion.Core/Core/GitVersionContextFactory.cs @@ -1,6 +1,4 @@ -using GitVersion.Common; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; namespace GitVersion; diff --git a/src/GitVersion.Core/Core/IBranchRepository.cs b/src/GitVersion.Core/Core/IBranchRepository.cs index a58e603988..7a4e94213f 100644 --- a/src/GitVersion.Core/Core/IBranchRepository.cs +++ b/src/GitVersion.Core/Core/IBranchRepository.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.Git; -namespace GitVersion.Core; +namespace GitVersion; internal interface IBranchRepository { diff --git a/src/GitVersion.Core/Core/ITaggedSemanticVersionRepository.cs b/src/GitVersion.Core/Core/ITaggedSemanticVersionRepository.cs index 8177f1600d..5fc65d6eeb 100644 --- a/src/GitVersion.Core/Core/ITaggedSemanticVersionRepository.cs +++ b/src/GitVersion.Core/Core/ITaggedSemanticVersionRepository.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.Git; -namespace GitVersion.Core; +namespace GitVersion; internal interface ITaggedSemanticVersionRepository { diff --git a/src/GitVersion.Core/Core/ITaggedSemanticVersionService.cs b/src/GitVersion.Core/Core/ITaggedSemanticVersionService.cs index 8c476cc7f5..acf190d2a9 100644 --- a/src/GitVersion.Core/Core/ITaggedSemanticVersionService.cs +++ b/src/GitVersion.Core/Core/ITaggedSemanticVersionService.cs @@ -1,7 +1,7 @@ using GitVersion.Configuration; using GitVersion.Git; -namespace GitVersion.Core; +namespace GitVersion; internal interface ITaggedSemanticVersionService { diff --git a/src/GitVersion.Core/Core/MergeBaseFinder.cs b/src/GitVersion.Core/Core/MergeBaseFinder.cs index a281a01ce7..7eb525fedc 100644 --- a/src/GitVersion.Core/Core/MergeBaseFinder.cs +++ b/src/GitVersion.Core/Core/MergeBaseFinder.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Logging; diff --git a/src/GitVersion.Core/Core/MergeCommitFinder.cs b/src/GitVersion.Core/Core/MergeCommitFinder.cs index c38da050af..4291a2c0a5 100644 --- a/src/GitVersion.Core/Core/MergeCommitFinder.cs +++ b/src/GitVersion.Core/Core/MergeCommitFinder.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; diff --git a/src/GitVersion.Core/Core/RegexPatterns.cs b/src/GitVersion.Core/Core/RegexPatterns.cs index 3b6ae834dd..ff33947144 100644 --- a/src/GitVersion.Core/Core/RegexPatterns.cs +++ b/src/GitVersion.Core/Core/RegexPatterns.cs @@ -3,7 +3,7 @@ using System.Diagnostics.CodeAnalysis; using System.Text.RegularExpressions; -namespace GitVersion.Core; +namespace GitVersion; internal static partial class RegexPatterns { diff --git a/src/GitVersion.Core/Core/RepositoryStore.cs b/src/GitVersion.Core/Core/RepositoryStore.cs index 50b5512a07..f9dad2ea96 100644 --- a/src/GitVersion.Core/Core/RepositoryStore.cs +++ b/src/GitVersion.Core/Core/RepositoryStore.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; diff --git a/src/GitVersion.Core/Core/SourceBranchFinder.cs b/src/GitVersion.Core/Core/SourceBranchFinder.cs index 5d8b4095d3..98b7ea01d0 100644 --- a/src/GitVersion.Core/Core/SourceBranchFinder.cs +++ b/src/GitVersion.Core/Core/SourceBranchFinder.cs @@ -1,6 +1,5 @@ using System.Text.RegularExpressions; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; diff --git a/src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs b/src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs index 60bf291f6b..7c0190fd8d 100644 --- a/src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs +++ b/src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs @@ -1,11 +1,10 @@ using System.Collections.Concurrent; -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Logging; -namespace GitVersion.Core; +namespace GitVersion; internal sealed class TaggedSemanticVersionRepository(ILog log, IRepositoryStore repositoryStore) : ITaggedSemanticVersionRepository { diff --git a/src/GitVersion.Core/Core/TaggedSemanticVersionService.cs b/src/GitVersion.Core/Core/TaggedSemanticVersionService.cs index 2c4f966e6e..d8b9e59e1c 100644 --- a/src/GitVersion.Core/Core/TaggedSemanticVersionService.cs +++ b/src/GitVersion.Core/Core/TaggedSemanticVersionService.cs @@ -1,10 +1,9 @@ using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; - using CommitSemanticVersion = (GitVersion.Git.ICommit Commit, GitVersion.SemanticVersionWithTag SemanticVersion); -namespace GitVersion.Core; +namespace GitVersion; internal sealed class TaggedSemanticVersionService( ITaggedSemanticVersionRepository repository, IBranchRepository branchRepository) diff --git a/src/GitVersion.Core/Core/TaggedSemanticVersions.cs b/src/GitVersion.Core/Core/TaggedSemanticVersions.cs index 898a70bd79..bc40982341 100644 --- a/src/GitVersion.Core/Core/TaggedSemanticVersions.cs +++ b/src/GitVersion.Core/Core/TaggedSemanticVersions.cs @@ -1,4 +1,4 @@ -namespace GitVersion.Core; +namespace GitVersion; [Flags] internal enum TaggedSemanticVersions diff --git a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs index e79fcca522..49880d8e06 100644 --- a/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs +++ b/src/GitVersion.Core/Extensions/ConfigurationExtensions.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Formatting; using GitVersion.Git; diff --git a/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs b/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs index 84254303a0..c272c9232a 100644 --- a/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs +++ b/src/GitVersion.Core/Extensions/ReferenceNameExtensions.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; using SemanticVersionResult = (GitVersion.SemanticVersion Value, string? Name); diff --git a/src/GitVersion.Core/Extensions/StringExtensions.cs b/src/GitVersion.Core/Extensions/StringExtensions.cs index 998a158092..5c8b0f4fb8 100644 --- a/src/GitVersion.Core/Extensions/StringExtensions.cs +++ b/src/GitVersion.Core/Extensions/StringExtensions.cs @@ -1,6 +1,5 @@ using System.Diagnostics.CodeAnalysis; using System.Globalization; -using GitVersion.Core; namespace GitVersion.Extensions; diff --git a/src/GitVersion.Core/Formatting/InputSanitizer.cs b/src/GitVersion.Core/Formatting/InputSanitizer.cs index f0f043c05b..8312657776 100644 --- a/src/GitVersion.Core/Formatting/InputSanitizer.cs +++ b/src/GitVersion.Core/Formatting/InputSanitizer.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; namespace GitVersion.Formatting; diff --git a/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs b/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs index 341c9096f0..df34cb3f2e 100644 --- a/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs +++ b/src/GitVersion.Core/Formatting/StringFormatWithExtension.cs @@ -1,5 +1,4 @@ using System.Text.RegularExpressions; -using GitVersion.Core; namespace GitVersion.Formatting; diff --git a/src/GitVersion.Core/GitVersionCoreModule.cs b/src/GitVersion.Core/GitVersionCoreModule.cs index 815d97e1f0..3af3941871 100644 --- a/src/GitVersion.Core/GitVersionCoreModule.cs +++ b/src/GitVersion.Core/GitVersionCoreModule.cs @@ -1,5 +1,3 @@ -using GitVersion.Common; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.VersionCalculation; using GitVersion.VersionCalculation.Caching; diff --git a/src/GitVersion.Core/Logging/Log.cs b/src/GitVersion.Core/Logging/Log.cs index e18eef1453..37b8654184 100644 --- a/src/GitVersion.Core/Logging/Log.cs +++ b/src/GitVersion.Core/Logging/Log.cs @@ -1,5 +1,4 @@ using System.Globalization; -using GitVersion.Core; using GitVersion.Helpers; namespace GitVersion.Logging; diff --git a/src/GitVersion.Core/MergeMessage.cs b/src/GitVersion.Core/MergeMessage.cs index c3576aa57c..1cb869c275 100644 --- a/src/GitVersion.Core/MergeMessage.cs +++ b/src/GitVersion.Core/MergeMessage.cs @@ -1,7 +1,6 @@ using System.Diagnostics.CodeAnalysis; using System.Text.RegularExpressions; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; diff --git a/src/GitVersion.Core/PublicAPI.Shipped.txt b/src/GitVersion.Core/PublicAPI.Shipped.txt index fb75cf4a4b..5ce0a125bc 100644 --- a/src/GitVersion.Core/PublicAPI.Shipped.txt +++ b/src/GitVersion.Core/PublicAPI.Shipped.txt @@ -19,26 +19,26 @@ GitVersion.BugException GitVersion.BugException.BugException() -> void GitVersion.BugException.BugException(string! message) -> void GitVersion.BugException.BugException(string? message, System.Exception? innerException) -> void -GitVersion.Common.IRepositoryStore -GitVersion.Common.IRepositoryStore.Branches.get -> GitVersion.Git.IBranchCollection! -GitVersion.Common.IRepositoryStore.ExcludingBranches(System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! branchesToExclude) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! -GitVersion.Common.IRepositoryStore.FindBranch(GitVersion.Git.ReferenceName! branchName) -> GitVersion.Git.IBranch? -GitVersion.Common.IRepositoryStore.FindCommitBranchesBranchedFrom(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, params GitVersion.Git.IBranch![]! excludedBranches) -> System.Collections.Generic.IEnumerable<GitVersion.Git.BranchCommit>! -GitVersion.Common.IRepositoryStore.FindMergeBase(GitVersion.Git.IBranch? branch, GitVersion.Git.IBranch? otherBranch) -> GitVersion.Git.ICommit? -GitVersion.Common.IRepositoryStore.FindMergeBase(GitVersion.Git.ICommit! commit, GitVersion.Git.ICommit! mainlineTip) -> GitVersion.Git.ICommit? -GitVersion.Common.IRepositoryStore.GetBranchesContainingCommit(GitVersion.Git.ICommit! commit, System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>? branches = null, bool onlyTrackedBranches = false) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! -GitVersion.Common.IRepositoryStore.GetCommitLog(GitVersion.Git.ICommit? baseVersionSource, GitVersion.Git.ICommit! currentCommit, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! -GitVersion.Common.IRepositoryStore.GetCommitsReacheableFrom(GitVersion.Git.ICommit! commit, GitVersion.Git.IBranch! branch) -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! -GitVersion.Common.IRepositoryStore.GetCommitsReacheableFromHead(GitVersion.Git.ICommit? headCommit, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! -GitVersion.Common.IRepositoryStore.GetCurrentCommit(GitVersion.Git.IBranch! currentBranch, string? commitId, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> GitVersion.Git.ICommit? -GitVersion.Common.IRepositoryStore.GetForwardMerge(GitVersion.Git.ICommit? commitToFindCommonBase, GitVersion.Git.ICommit? findMergeBase) -> GitVersion.Git.ICommit? -GitVersion.Common.IRepositoryStore.GetSourceBranches(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, params GitVersion.Git.IBranch![]! excludedBranches) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! -GitVersion.Common.IRepositoryStore.GetSourceBranches(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! excludedBranches) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! -GitVersion.Common.IRepositoryStore.GetTargetBranch(string? targetBranchName) -> GitVersion.Git.IBranch! -GitVersion.Common.IRepositoryStore.Head.get -> GitVersion.Git.IBranch! -GitVersion.Common.IRepositoryStore.IsCommitOnBranch(GitVersion.Git.ICommit? baseVersionSource, GitVersion.Git.IBranch! branch, GitVersion.Git.ICommit! firstMatchingCommit) -> bool -GitVersion.Common.IRepositoryStore.Tags.get -> GitVersion.Git.ITagCollection! -GitVersion.Common.IRepositoryStore.UncommittedChangesCount.get -> int +GitVersion.IRepositoryStore +GitVersion.IRepositoryStore.Branches.get -> GitVersion.Git.IBranchCollection! +GitVersion.IRepositoryStore.ExcludingBranches(System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! branchesToExclude) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! +GitVersion.IRepositoryStore.FindBranch(GitVersion.Git.ReferenceName! branchName) -> GitVersion.Git.IBranch? +GitVersion.IRepositoryStore.FindCommitBranchesBranchedFrom(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, params GitVersion.Git.IBranch![]! excludedBranches) -> System.Collections.Generic.IEnumerable<GitVersion.Git.BranchCommit>! +GitVersion.IRepositoryStore.FindMergeBase(GitVersion.Git.IBranch? branch, GitVersion.Git.IBranch? otherBranch) -> GitVersion.Git.ICommit? +GitVersion.IRepositoryStore.FindMergeBase(GitVersion.Git.ICommit! commit, GitVersion.Git.ICommit! mainlineTip) -> GitVersion.Git.ICommit? +GitVersion.IRepositoryStore.GetBranchesContainingCommit(GitVersion.Git.ICommit! commit, System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>? branches = null, bool onlyTrackedBranches = false) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! +GitVersion.IRepositoryStore.GetCommitLog(GitVersion.Git.ICommit? baseVersionSource, GitVersion.Git.ICommit! currentCommit, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! +GitVersion.IRepositoryStore.GetCommitsReacheableFrom(GitVersion.Git.ICommit! commit, GitVersion.Git.IBranch! branch) -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! +GitVersion.IRepositoryStore.GetCommitsReacheableFromHead(GitVersion.Git.ICommit? headCommit, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> System.Collections.Generic.IReadOnlyList<GitVersion.Git.ICommit!>! +GitVersion.IRepositoryStore.GetCurrentCommit(GitVersion.Git.IBranch! currentBranch, string? commitId, GitVersion.Configuration.IIgnoreConfiguration! ignore) -> GitVersion.Git.ICommit? +GitVersion.IRepositoryStore.GetForwardMerge(GitVersion.Git.ICommit? commitToFindCommonBase, GitVersion.Git.ICommit? findMergeBase) -> GitVersion.Git.ICommit? +GitVersion.IRepositoryStore.GetSourceBranches(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, params GitVersion.Git.IBranch![]! excludedBranches) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! +GitVersion.IRepositoryStore.GetSourceBranches(GitVersion.Git.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! excludedBranches) -> System.Collections.Generic.IEnumerable<GitVersion.Git.IBranch!>! +GitVersion.IRepositoryStore.GetTargetBranch(string? targetBranchName) -> GitVersion.Git.IBranch! +GitVersion.IRepositoryStore.Head.get -> GitVersion.Git.IBranch! +GitVersion.IRepositoryStore.IsCommitOnBranch(GitVersion.Git.ICommit? baseVersionSource, GitVersion.Git.IBranch! branch, GitVersion.Git.ICommit! firstMatchingCommit) -> bool +GitVersion.IRepositoryStore.Tags.get -> GitVersion.Git.ITagCollection! +GitVersion.IRepositoryStore.UncommittedChangesCount.get -> int GitVersion.Configuration.AssemblyFileVersioningScheme GitVersion.Configuration.AssemblyFileVersioningScheme.Major = 3 -> GitVersion.Configuration.AssemblyFileVersioningScheme GitVersion.Configuration.AssemblyFileVersioningScheme.MajorMinor = 2 -> GitVersion.Configuration.AssemblyFileVersioningScheme diff --git a/src/GitVersion.Core/SemVer/SemanticVersion.cs b/src/GitVersion.Core/SemVer/SemanticVersion.cs index fa7d17dade..7ba6510dfc 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersion.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersion.cs @@ -1,6 +1,5 @@ using System.Diagnostics.CodeAnalysis; using System.Globalization; -using GitVersion.Core; using GitVersion.Extensions; namespace GitVersion; diff --git a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs index 98f1b98f62..01bb2747c5 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs @@ -1,5 +1,4 @@ using System.Globalization; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Helpers; diff --git a/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs b/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs index 5a5933f373..87de99ebbe 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs @@ -1,5 +1,4 @@ using System.Globalization; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Helpers; diff --git a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs index c684467ff3..021318ece0 100644 --- a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs +++ b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs @@ -1,6 +1,5 @@ using System.IO.Abstractions; using System.Security.Cryptography; -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; diff --git a/src/GitVersion.Core/VersionCalculation/EffectiveBranchConfigurationFinder.cs b/src/GitVersion.Core/VersionCalculation/EffectiveBranchConfigurationFinder.cs index 7d9fc16476..66ebe69afb 100644 --- a/src/GitVersion.Core/VersionCalculation/EffectiveBranchConfigurationFinder.cs +++ b/src/GitVersion.Core/VersionCalculation/EffectiveBranchConfigurationFinder.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Git; diff --git a/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs b/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs index 1a2b0bf32b..d7ed16e257 100644 --- a/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs +++ b/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs @@ -1,7 +1,5 @@ using System.Text.RegularExpressions; -using GitVersion.Common; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; diff --git a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs index 3943b84ab5..ec302556e8 100644 --- a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs +++ b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs @@ -1,6 +1,5 @@ using System.Globalization; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; namespace GitVersion; diff --git a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs index 3451f6a514..656b6b0f12 100644 --- a/src/GitVersion.Core/VersionCalculation/VariableProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/VariableProvider.cs @@ -1,5 +1,4 @@ using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Formatting; using GitVersion.OutputVariables; diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs index 865ec5d917..69b298b183 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Logging; namespace GitVersion.VersionCalculation; diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs index deeb94fe9a..f917e9454a 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Logging; namespace GitVersion.VersionCalculation; diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs index d13b586c3e..ddb64e7243 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Logging; namespace GitVersion.VersionCalculation; diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs index 67d34935cb..40dd3484ed 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs @@ -1,7 +1,6 @@ using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.Logging; diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs index 9670425e5c..e25da432d5 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Extensions; using GitVersion.Logging; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs index 019852e035..7bbf3520db 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs @@ -1,5 +1,4 @@ using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; namespace GitVersion.VersionCalculation; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs index 0bcf15667e..1e95dc8916 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs @@ -1,6 +1,4 @@ -using GitVersion.Common; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; using GitVersion.VersionCalculation.Mainline; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs index ae39de3386..1630242a6f 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs @@ -1,4 +1,3 @@ -using GitVersion.Common; using GitVersion.Configuration; using GitVersion.Extensions; using GitVersion.Logging; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs index 1b3445e9d9..ecc78b068b 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs @@ -1,5 +1,4 @@ using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Logging; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs index 4250ef2ad2..76b95c0e14 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs @@ -1,7 +1,5 @@ using System.Diagnostics.CodeAnalysis; -using GitVersion.Common; using GitVersion.Configuration; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Git; diff --git a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs index 1d1c138d8c..345c3bb9c6 100644 --- a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs +++ b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs @@ -1,7 +1,7 @@ using Buildalyzer; using Buildalyzer.Environment; -using GitVersion.Core.Tests; using GitVersion.Helpers; +using GitVersion.Tests; using Microsoft.Build.Framework; using Microsoft.Build.Logging; using Microsoft.Build.Utilities.ProjectCreation; diff --git a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs index a6e1224e06..73eea23c4a 100644 --- a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs +++ b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs @@ -1,8 +1,8 @@ using GitVersion.Agents; -using GitVersion.Core.Tests; using GitVersion.Helpers; using GitVersion.MsBuild.Tasks; using GitVersion.MsBuild.Tests.Mocks; +using GitVersion.Tests; namespace GitVersion.MsBuild.Tests.Helpers; diff --git a/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs b/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs index 169416e7f5..6555304558 100644 --- a/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs +++ b/src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs @@ -1,7 +1,7 @@ using System.IO.Abstractions; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.MsBuild.Tests.Mocks; +using GitVersion.Tests; namespace GitVersion.MsBuild.Tests; diff --git a/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs b/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs index c16fc5b1cb..494ef739b6 100644 --- a/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs +++ b/src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs @@ -1,12 +1,11 @@ using System.IO.Abstractions; using GitVersion.Agents; using GitVersion.Configuration; -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.MsBuild.Tasks; using GitVersion.MsBuild.Tests.Helpers; using GitVersion.Testing.Extensions; +using GitVersion.Tests; using LibGit2Sharp; using Microsoft.Build.Utilities.ProjectCreation; diff --git a/src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs b/src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs index ae53770b68..1aaecdee67 100644 --- a/src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs +++ b/src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs @@ -3,7 +3,7 @@ using GitVersion.Helpers; using Microsoft.Build.Framework; -using static GitVersion.Core.RegexPatterns.AssemblyVersion; +using static GitVersion.RegexPatterns.AssemblyVersion; namespace GitVersion.MsBuild; diff --git a/src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs b/src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs index b3a44c07e0..c2df5a2bdd 100644 --- a/src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs +++ b/src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs @@ -1,6 +1,6 @@ using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Extensions; +using GitVersion.Tests; namespace GitVersion.Output.Tests; diff --git a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs index 548c6ef238..d7656de86b 100644 --- a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs @@ -1,11 +1,10 @@ using System.IO.Abstractions; using GitVersion.Configuration; -using GitVersion.Core; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.Output.AssemblyInfo; using GitVersion.OutputVariables; +using GitVersion.Tests; using GitVersion.VersionCalculation; namespace GitVersion.Output.Tests; diff --git a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs index e2ca58dc82..549d4093d3 100644 --- a/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs +++ b/src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs @@ -1,8 +1,7 @@ -using GitVersion.Core.Tests; -using GitVersion.Core.Tests.Helpers; using GitVersion.Logging; using GitVersion.Output.OutputGenerator; using GitVersion.Testing.Extensions; +using GitVersion.Tests; using LibGit2Sharp; namespace GitVersion.Output.Tests; diff --git a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs index 5e28c9421d..3dcebb1892 100644 --- a/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs +++ b/src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs @@ -1,9 +1,9 @@ using System.Globalization; using System.IO.Abstractions; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Output.GitVersionInfo; +using GitVersion.Tests; using GitVersion.VersionCalculation; namespace GitVersion.Output.Tests; diff --git a/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs b/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs index 6e81fea383..2f5bd51147 100644 --- a/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs +++ b/src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs @@ -1,4 +1,4 @@ -using GitVersion.Core.Tests.Helpers; +using GitVersion.Tests; namespace GitVersion.Output.Tests; diff --git a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs index a9ba775480..2e9cb44cb4 100644 --- a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs @@ -1,12 +1,11 @@ using System.IO.Abstractions; using System.Xml.Linq; using GitVersion.Configuration; -using GitVersion.Core; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.Output.AssemblyInfo; using GitVersion.OutputVariables; +using GitVersion.Tests; using GitVersion.VersionCalculation; namespace GitVersion.Output.Tests; diff --git a/src/GitVersion.Output.Tests/Output/WixFileTests.cs b/src/GitVersion.Output.Tests/Output/WixFileTests.cs index 3c8a1901de..c9beb0e71a 100644 --- a/src/GitVersion.Output.Tests/Output/WixFileTests.cs +++ b/src/GitVersion.Output.Tests/Output/WixFileTests.cs @@ -1,9 +1,9 @@ using System.IO.Abstractions; using GitVersion.Configuration; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Logging; using GitVersion.Output.WixUpdater; +using GitVersion.Tests; using GitVersion.VersionCalculation; namespace GitVersion.Output.Tests; diff --git a/src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs b/src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs index bfb0166d5d..a5fad2179e 100644 --- a/src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs +++ b/src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs @@ -1,6 +1,5 @@ using System.IO.Abstractions; using System.Text.RegularExpressions; -using GitVersion.Core; using GitVersion.Extensions; using GitVersion.Helpers; using GitVersion.Logging; diff --git a/src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs b/src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs index d22f2f9d73..7708226d49 100644 --- a/src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs +++ b/src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs @@ -1,4 +1,3 @@ -using GitVersion.Core; namespace GitVersion.Testing.Helpers; From ed31bb37a5971a8d05df8f84baa9268fa24147dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Ulsberg?= <asbjorn@ulsberg.no> Date: Fri, 26 Jun 2026 15:29:17 +0200 Subject: [PATCH 357/358] Qualify `this.` prefix Qualify `this.` prefix on private fields; unqualify it on all other class members. --- .editorconfig | 13 +- .../CalculateCommand.cs | 16 +- .../GitVersion.Cli.Generator/TypeVisitor.cs | 6 +- .../GitVersion.Configuration/ConfigCommand.cs | 8 +- .../Init/ConfigInitCommand.cs | 8 +- .../Show/ConfigShowCommand.cs | 8 +- .../Infrastructure/LoggingEnricher.cs | 16 +- .../NormalizeCommand.cs | 8 +- .../AssemblyInfo/OutputAssemblyInfoCommand.cs | 10 +- new-cli/GitVersion.Output/OutputCommand.cs | 8 +- .../Project/OutputProjectCommand.cs | 8 +- .../GitVersion.Output/Wix/OutputWixCommand.cs | 8 +- new-cli/GitVersion.sln.DotSettings | 731 +++++++++++++++++- .../Helpers/ArgumentBuilder.cs | 8 +- .../TagCheckoutInBuildAgentTests.cs | 2 +- src/GitVersion.App/ArgumentParser.cs | 11 +- src/GitVersion.App/Arguments.cs | 69 +- .../OverrideConfigurationOptionParser.cs | 2 +- src/GitVersion.BuildAgents/Agents/AppVeyor.cs | 10 +- .../Agents/AzurePipelines.cs | 6 +- .../Agents/BitBucketPipelines.cs | 6 +- .../Agents/BuildKite.cs | 6 +- .../Agents/CodeBuild.cs | 10 +- src/GitVersion.BuildAgents/Agents/Drone.cs | 14 +- src/GitVersion.BuildAgents/Agents/EnvRun.cs | 4 +- .../Agents/GitHubActions.cs | 8 +- src/GitVersion.BuildAgents/Agents/GitLabCi.cs | 6 +- src/GitVersion.BuildAgents/Agents/Jenkins.cs | 8 +- src/GitVersion.BuildAgents/Agents/MyGet.cs | 3 +- .../Agents/SpaceAutomation.cs | 2 +- src/GitVersion.BuildAgents/Agents/TeamCity.cs | 4 +- src/GitVersion.BuildAgents/Agents/TravisCI.cs | 2 +- .../ConfigurationFileLocatorTests.cs | 2 +- .../ConfigurationProviderTests.cs | 4 +- .../Configuration/IgnoreConfigurationTests.cs | 10 +- .../Workflows/WorkflowsTests.cs | 2 +- .../Builders/BranchConfigurationBuilder.cs | 32 +- .../Builders/ConfigurationBuilderBase.cs | 2 +- .../Builders/GitFlowConfigurationBuilder.cs | 32 +- .../GitHubFlowConfigurationBuilder.cs | 20 +- .../Builders/IgnoreConfigurationBuilder.cs | 4 +- .../TrunkBasedConfigurationBuilder.cs | 20 +- .../ConfigurationFileLocator.cs | 20 +- .../ConfigurationProvider.cs | 4 +- .../GitVersionConfiguration.cs | 4 +- .../Core/GitVersionToolDirectoryTests.cs | 2 +- ...elopBranchWithOneCommitMergedToMainWhen.cs | 16 +- ...gedToMainWhenMergedCommitTaggedAsStable.cs | 22 +- ...MergeCommitFromMainMergedBackToMainWhen.cs | 26 +- ...atureBranchWithAMergeCommitFromMainWhen.cs | 26 +- ...BranchWithOneCommitBranchedFromMainWhen.cs | 18 +- ...dFromMainWhenCommitAHasBumpMessageMajor.cs | 34 +- ...dFromMainWhenCommitAHasBumpMessageMinor.cs | 34 +- ...dFromMainWhenCommitAHasBumpMessagePatch.cs | 34 +- ...edFromMainWhenCommitATaggedAsPreRelease.cs | 20 +- ...romMainWhenCommitATaggedAsPreReleaseBar.cs | 20 +- ...romMainWhenCommitATaggedAsPreReleaseFoo.cs | 20 +- ...anchedFromMainWhenCommitATaggedAsStable.cs | 20 +- ...dFromMainWhenCommitBHasBumpMessageMajor.cs | 34 +- ...dFromMainWhenCommitBHasBumpMessageMinor.cs | 34 +- ...dFromMainWhenCommitBHasBumpMessagePatch.cs | 34 +- ...edFromMainWhenCommitBTaggedAsPreRelease.cs | 20 +- ...romMainWhenCommitBTaggedAsPreReleaseBar.cs | 20 +- ...romMainWhenCommitBTaggedAsPreReleaseFoo.cs | 20 +- ...anchedFromMainWhenCommitBTaggedAsStable.cs | 28 +- ...tureBranchWithOneCommitMergedToMainWhen.cs | 28 +- ...rgedToMainWhenCommitBTaggedAsPreRelease.cs | 30 +- ...dToMainWhenCommitBTaggedAsPreReleaseBar.cs | 30 +- ...dToMainWhenCommitBTaggedAsPreReleaseFoo.cs | 30 +- ...itMergedToMainWhenCommitBTaggedAsStable.cs | 30 +- ...oMainWithOneCommitBranchedToFeatureWhen.cs | 38 +- ...ow+GivenAFeatureBranchWithOneCommitWhen.cs | 8 +- ...hOneCommitWhenCommitHasBumpMessageMajor.cs | 12 +- ...hOneCommitWhenCommitHasBumpMessageMinor.cs | 12 +- ...hOneCommitWhenCommitHasBumpMessagePatch.cs | 12 +- ...thOneCommitWhenCommitTaggedAsPreRelease.cs | 12 +- ...neCommitWhenCommitTaggedAsPreReleaseBar.cs | 12 +- ...neCommitWhenCommitTaggedAsPreReleaseFoo.cs | 12 +- ...chWithOneCommitWhenCommitTaggedAsStable.cs | 12 +- ...nchWithThreeCommitsBranchedFromMainWhen.cs | 20 +- ...eBranchWithThreeCommitsMergedToMainWhen.cs | 34 +- ...GivenAFeatureBranchWithThreeCommitsWhen.cs | 12 +- ...ranchWithTwoCommitsBranchedFromMainWhen.cs | 18 +- ...ureBranchWithTwoCommitsMergedToMainWhen.cs | 30 +- ...ommitsWhenFirstCommitTaggedAsPreRelease.cs | 12 +- ...itsWhenFirstCommitTaggedAsPreReleaseBar.cs | 12 +- ...itsWhenFirstCommitTaggedAsPreReleaseFoo.cs | 12 +- ...ranchWithOneCommitBranchedToFeatureWhen.cs | 16 +- ...dToFeatureWhenCommitHasBumpMessageMajor.cs | 32 +- ...dToFeatureWhenCommitHasBumpMessageMinor.cs | 32 +- ...dToFeatureWhenCommitHasBumpMessagePatch.cs | 32 +- ...edToFeatureWhenCommitTaggedAsPreRelease.cs | 26 +- ...oFeatureWhenCommitTaggedAsPreReleaseBar.cs | 26 +- ...oFeatureWhenCommitTaggedAsPreReleaseFoo.cs | 26 +- ...anchedToFeatureWhenCommitTaggedAsStable.cs | 26 +- ...bFlow+GivenAMainBranchWithOneCommitWhen.cs | 8 +- ...hOneCommitWhenCommitHasBumpMessageMajor.cs | 12 +- ...hOneCommitWhenCommitHasBumpMessageMinor.cs | 12 +- ...hOneCommitWhenCommitHasBumpMessagePatch.cs | 12 +- ...thOneCommitWhenCommitTaggedAsPreRelease.cs | 10 +- ...neCommitWhenCommitTaggedAsPreReleaseBar.cs | 10 +- ...neCommitWhenCommitTaggedAsPreReleaseFoo.cs | 10 +- ...chWithOneCommitWhenCommitTaggedAsStable.cs | 10 +- ...ow+GivenAMainBranchWithThreeCommitsWhen.cs | 12 +- ...anchWithTwoCommitsBranchedToFeatureWhen.cs | 18 +- ...atureWhenFirstCommitHasBumpMessageMajor.cs | 34 +- ...atureWhenFirstCommitHasBumpMessageMinor.cs | 34 +- ...atureWhenFirstCommitHasBumpMessagePatch.cs | 34 +- ...eatureWhenFirstCommitTaggedAsPreRelease.cs | 20 +- ...ureWhenFirstCommitTaggedAsPreReleaseBar.cs | 20 +- ...ureWhenFirstCommitTaggedAsPreReleaseFoo.cs | 20 +- ...dToFeatureWhenFirstCommitTaggedAsStable.cs | 20 +- ...Flow+GivenAMainBranchWithTwoCommitsWhen.cs | 10 +- ...mmitsWhenFirstCommitHasBumpMessageMajor.cs | 14 +- ...mmitsWhenFirstCommitHasBumpMessageMinor.cs | 14 +- ...mmitsWhenFirstCommitHasBumpMessagePatch.cs | 14 +- ...ommitsWhenFirstCommitTaggedAsPreRelease.cs | 12 +- ...itsWhenFirstCommitTaggedAsPreReleaseBar.cs | 12 +- ...itsWhenFirstCommitTaggedAsPreReleaseFoo.cs | 12 +- ...TwoCommitsWhenFirstCommitTaggedAsStable.cs | 12 +- ...mitsWhenSecondCommitHasBumpMessageMajor.cs | 14 +- ...mitsWhenSecondCommitHasBumpMessageMinor.cs | 14 +- ...mitsWhenSecondCommitHasBumpMessagePatch.cs | 14 +- ...mmitsWhenSecondCommitTaggedAsPreRelease.cs | 12 +- ...tsWhenSecondCommitTaggedAsPreReleaseBar.cs | 12 +- ...tsWhenSecondCommitTaggedAsPreReleaseFoo.cs | 12 +- ...woCommitsWhenSecondCommitTaggedAsStable.cs | 12 +- src/GitVersion.Core/Agents/BuildAgentBase.cs | 6 +- .../Core/BranchesContainingCommitFinder.cs | 14 +- src/GitVersion.Core/Core/RepositoryStore.cs | 2 +- .../Core/TaggedSemanticVersionRepository.cs | 6 +- .../Formatting/ValueFormatter.cs | 8 +- src/GitVersion.Core/SemVer/SemanticVersion.cs | 56 +- .../SemVer/SemanticVersionBuildMetaData.cs | 50 +- .../Caching/GitVersionCacheKeyFactory.cs | 2 +- .../Caching/GitVersionCacheProvider.cs | 6 +- .../IncrementStrategyFinder.cs | 2 +- .../Mainline/MainlineCommit.cs | 8 +- .../Mainline/MainlineIteration.cs | 10 +- .../VersionCalculation/PathFilter.cs | 6 +- .../SemanticVersionFormatValues.cs | 4 +- .../NextVersionCalculator.cs | 12 +- .../ConfiguredNextVersionVersionStrategy.cs | 4 +- .../FallbacktVersionStrategy.cs | 6 +- .../MainlineVersionStrategy.cs | 16 +- .../MergeMessageVersionStrategy.cs | 2 +- .../TaggedCommitVersionStrategy.cs | 6 +- .../TrackReleaseBranchesVersionStrategy.cs | 2 +- .../VersionInBranchNameVersionStrategy.cs | 2 +- src/GitVersion.LibGit2Sharp/Git/Commit.cs | 6 +- .../Git/GitRepositoryCache.cs | 12 +- .../Git/GitRepositoryInfo.cs | 8 +- .../Git/ReferenceCollection.cs | 2 +- .../Git/RemoteCollection.cs | 2 +- .../Helpers/MsBuildExeFixture.cs | 10 +- .../GitVersionTaskExecutor.cs | 12 +- .../Output/AssemblyInfoFileUpdaterTests.cs | 84 +- .../Output/ProjectFileUpdaterTests.cs | 36 +- .../Output/WixFileTests.cs | 16 +- src/GitVersion.Output/GitVersionOutputTool.cs | 10 +- .../Fixtures/RepositoryFixtureBase.cs | 16 +- .../Fixtures/SequenceDiagram.cs | 36 +- src/GitVersion.sln.DotSettings | 30 +- 163 files changed, 2022 insertions(+), 1285 deletions(-) diff --git a/.editorconfig b/.editorconfig index 7280cb9f65..b0bf5f3a30 100644 --- a/.editorconfig +++ b/.editorconfig @@ -158,9 +158,20 @@ resharper_csharp_use_roslyn_logic_for_evident_types = true # Alignment resharper_csharp_align_multiline_parameter = true -# Qualify fields with "this." +# Qualify fields with `this.` in ReSharper resharper_csharp_instance_members_qualify_members = field +# Qualify fields with `this.` in Roslyn +dotnet_style_qualification_for_field = true:error + +# Do not qualify properties, methods, and events with `this.` in Roslyn +dotnet_style_qualification_for_property = false:error +dotnet_style_qualification_for_method = false:error +dotnet_style_qualification_for_event = false:error + +# Make missing `this.` qualification an error +dotnet_diagnostic.IDE0009.severity = error + # IDE0005: Using directive is unnecessary. dotnet_diagnostic.ide0005.severity = warning diff --git a/new-cli/GitVersion.Calculation/CalculateCommand.cs b/new-cli/GitVersion.Calculation/CalculateCommand.cs index 6b3dbb798a..b24b97f567 100644 --- a/new-cli/GitVersion.Calculation/CalculateCommand.cs +++ b/new-cli/GitVersion.Calculation/CalculateCommand.cs @@ -9,20 +9,20 @@ public record CalculateSettings : GitVersionSettings; [Command("calculate", "Calculates the version object from the git history.")] public class CalculateCommand(ILogger<CalculateCommand> logger, IService service, IGitRepository repository) : ICommand<CalculateSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); - private readonly IGitRepository _repository = repository.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); + private readonly IGitRepository repository = repository.NotNull(); public Task<int> InvokeAsync(CalculateSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); + var value = this.service.Call(); if (settings.WorkDir != null) { - _repository.DiscoverRepository(settings.WorkDir.FullName); - var branches = _repository.Branches.ToList(); - _logger.LogInformation("Command : 'calculate', LogFile : '{logFile}', WorkDir : '{workDir}' ", + this.repository.DiscoverRepository(settings.WorkDir.FullName); + var branches = this.repository.Branches.ToList(); + this.logger.LogInformation("Command : 'calculate', LogFile : '{logFile}', WorkDir : '{workDir}' ", settings.LogFile, settings.WorkDir); - _logger.LogInformation("Found {count} branches", branches.Count); + this.logger.LogInformation("Found {count} branches", branches.Count); } return Task.FromResult(value); diff --git a/new-cli/GitVersion.Cli.Generator/TypeVisitor.cs b/new-cli/GitVersion.Cli.Generator/TypeVisitor.cs index 6507afdd7d..e2f5e0f897 100644 --- a/new-cli/GitVersion.Cli.Generator/TypeVisitor.cs +++ b/new-cli/GitVersion.Cli.Generator/TypeVisitor.cs @@ -3,9 +3,9 @@ namespace GitVersion; internal class TypeVisitor(Func<INamedTypeSymbol, bool> searchQuery, CancellationToken cancellation) : SymbolVisitor { - private readonly HashSet<INamedTypeSymbol> _exportedTypes = new(SymbolEqualityComparer.Default); + private readonly HashSet<INamedTypeSymbol> exportedTypes = new(SymbolEqualityComparer.Default); - public ImmutableArray<INamedTypeSymbol> GetResults() => [.. _exportedTypes]; + public ImmutableArray<INamedTypeSymbol> GetResults() => [.. this.exportedTypes]; public override void VisitAssembly(IAssemblySymbol symbol) { @@ -28,7 +28,7 @@ public override void VisitNamedType(INamedTypeSymbol type) if (searchQuery(type)) { - _exportedTypes.Add(type); + this.exportedTypes.Add(type); } } } diff --git a/new-cli/GitVersion.Configuration/ConfigCommand.cs b/new-cli/GitVersion.Configuration/ConfigCommand.cs index 7fde5361e2..23f7d2621b 100644 --- a/new-cli/GitVersion.Configuration/ConfigCommand.cs +++ b/new-cli/GitVersion.Configuration/ConfigCommand.cs @@ -8,13 +8,13 @@ public record ConfigSettings : GitVersionSettings; [Command("config", "Manages the GitVersion configuration file.")] public class ConfigCommand(ILogger<ConfigCommand> logger, IService service) : ICommand<ConfigSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(ConfigSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'config', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'config', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Configuration/Init/ConfigInitCommand.cs b/new-cli/GitVersion.Configuration/Init/ConfigInitCommand.cs index 1a1298e3be..8417453de0 100644 --- a/new-cli/GitVersion.Configuration/Init/ConfigInitCommand.cs +++ b/new-cli/GitVersion.Configuration/Init/ConfigInitCommand.cs @@ -8,13 +8,13 @@ public record ConfigInitSettings : ConfigSettings; [Command<ConfigCommand>("init", "Inits the configuration for current repository.")] public class ConfigInitCommand(ILogger<ConfigInitCommand> logger, IService service) : ICommand<ConfigInitSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(ConfigInitSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'config init', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'config init', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Configuration/Show/ConfigShowCommand.cs b/new-cli/GitVersion.Configuration/Show/ConfigShowCommand.cs index 6da714ca22..dc2eac2bd1 100644 --- a/new-cli/GitVersion.Configuration/Show/ConfigShowCommand.cs +++ b/new-cli/GitVersion.Configuration/Show/ConfigShowCommand.cs @@ -8,13 +8,13 @@ public record ConfigShowSettings : ConfigSettings; [Command<ConfigCommand>("show", "Shows the effective configuration.")] public class ConfigShowCommand(ILogger<ConfigShowCommand> logger, IService service) : ICommand<ConfigShowSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(ConfigShowSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'config show', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'config show', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Core/Infrastructure/LoggingEnricher.cs b/new-cli/GitVersion.Core/Infrastructure/LoggingEnricher.cs index c20dadce14..1f51ddfec9 100644 --- a/new-cli/GitVersion.Core/Infrastructure/LoggingEnricher.cs +++ b/new-cli/GitVersion.Core/Infrastructure/LoggingEnricher.cs @@ -6,11 +6,11 @@ namespace GitVersion.Infrastructure; public class LoggingEnricher : ILogEventEnricher { public static readonly LoggingLevelSwitch LogLevel = new(); - private string? _cachedLogFilePath; - private LogEventProperty? _cachedLogFilePathProp; + private string? cachedLogFilePath; + private LogEventProperty? cachedLogFilePathProp; // this path and level will be set by the LogInterceptor.cs after parsing the settings - private static string _path = string.Empty; + private static string path = string.Empty; public const string LogFilePathPropertyName = "LogFilePath"; @@ -20,17 +20,17 @@ public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propFactory) // we won't have the setting, so a default value for the log file will be required LogEventProperty logFilePathProp; - if (_cachedLogFilePathProp != null && _path.Equals(_cachedLogFilePath)) + if (this.cachedLogFilePathProp != null && path.Equals(this.cachedLogFilePath)) { // The Path hasn't changed, so let's use the cached property - logFilePathProp = _cachedLogFilePathProp; + logFilePathProp = this.cachedLogFilePathProp; } else { // We've got a new path for the log. Let's create a new property // and cache it for future log events to use - _cachedLogFilePath = _path; - _cachedLogFilePathProp = logFilePathProp = propFactory.CreateProperty(LogFilePathPropertyName, _path); + this.cachedLogFilePath = path; + this.cachedLogFilePathProp = logFilePathProp = propFactory.CreateProperty(LogFilePathPropertyName, path); } logEvent.AddPropertyIfAbsent(logFilePathProp); @@ -38,7 +38,7 @@ public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propFactory) public static void Configure(string? logFile, Verbosity verbosity) { - if (!string.IsNullOrWhiteSpace(logFile)) _path = logFile; + if (!string.IsNullOrWhiteSpace(logFile)) path = logFile; LogLevel.MinimumLevel = GetLevelForVerbosity(verbosity); } diff --git a/new-cli/GitVersion.Normalization/NormalizeCommand.cs b/new-cli/GitVersion.Normalization/NormalizeCommand.cs index ed38ea327b..8f1e13547f 100644 --- a/new-cli/GitVersion.Normalization/NormalizeCommand.cs +++ b/new-cli/GitVersion.Normalization/NormalizeCommand.cs @@ -8,13 +8,13 @@ public record NormalizeSettings : GitVersionSettings; [Command("normalize", "Normalizes the git repository for GitVersion calculations.")] public class NormalizeCommand(ILogger<NormalizeCommand> logger, IService service) : ICommand<NormalizeSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(NormalizeSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'normalize', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'normalize', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoCommand.cs b/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoCommand.cs index 44c373ef46..2d8903d44a 100644 --- a/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoCommand.cs +++ b/new-cli/GitVersion.Output/AssemblyInfo/OutputAssemblyInfoCommand.cs @@ -6,15 +6,15 @@ namespace GitVersion.Commands; [Command<OutputCommand>("assemblyinfo", "Outputs version to assembly")] public class OutputAssemblyInfoCommand(ILogger<OutputAssemblyInfoCommand> logger, IService service) : ICommand<OutputAssemblyInfoSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(OutputAssemblyInfoSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); + var value = this.service.Call(); var versionInfo = settings.VersionInfo.Value; - _logger.LogInformation($"Command : 'output assemblyinfo', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', AssemblyInfo: '{settings.AssemblyinfoFile}' "); - _logger.LogInformation($"Version info: {versionInfo}"); + this.logger.LogInformation($"Command : 'output assemblyinfo', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', AssemblyInfo: '{settings.AssemblyinfoFile}' "); + this.logger.LogInformation($"Version info: {versionInfo}"); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Output/OutputCommand.cs b/new-cli/GitVersion.Output/OutputCommand.cs index 2791d211cf..93d625b230 100644 --- a/new-cli/GitVersion.Output/OutputCommand.cs +++ b/new-cli/GitVersion.Output/OutputCommand.cs @@ -6,13 +6,13 @@ namespace GitVersion.Commands; [Command("output", "Outputs the version object.")] public class OutputCommand(ILogger<OutputCommand> logger, IService service) : ICommand<OutputSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(OutputSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'output', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'output', LogFile : '{settings.LogFile}', WorkDir : '{settings.WorkDir}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Output/Project/OutputProjectCommand.cs b/new-cli/GitVersion.Output/Project/OutputProjectCommand.cs index 2608bc51fb..abeeb5594e 100644 --- a/new-cli/GitVersion.Output/Project/OutputProjectCommand.cs +++ b/new-cli/GitVersion.Output/Project/OutputProjectCommand.cs @@ -6,13 +6,13 @@ namespace GitVersion.Commands; [Command<OutputCommand>("project", "Outputs version to project")] public class OutputProjectCommand(ILogger<OutputProjectCommand> logger, IService service) : ICommand<OutputProjectSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(OutputProjectSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'output project', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', Project: '{settings.ProjectFile}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'output project', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', Project: '{settings.ProjectFile}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.Output/Wix/OutputWixCommand.cs b/new-cli/GitVersion.Output/Wix/OutputWixCommand.cs index abe89f7e9e..63001d572f 100644 --- a/new-cli/GitVersion.Output/Wix/OutputWixCommand.cs +++ b/new-cli/GitVersion.Output/Wix/OutputWixCommand.cs @@ -6,13 +6,13 @@ namespace GitVersion.Commands; [Command<OutputCommand>("wix", "Outputs version to wix file")] public class OutputWixCommand(ILogger<OutputWixCommand> logger, IService service) : ICommand<OutputWixSettings> { - private readonly ILogger _logger = logger.NotNull(); - private readonly IService _service = service.NotNull(); + private readonly ILogger logger = logger.NotNull(); + private readonly IService service = service.NotNull(); public Task<int> InvokeAsync(OutputWixSettings settings, CancellationToken cancellationToken = default) { - var value = _service.Call(); - _logger.LogInformation($"Command : 'output wix', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', WixFile: '{settings.WixFile}' "); + var value = this.service.Call(); + this.logger.LogInformation($"Command : 'output wix', LogFile : '{settings.LogFile}', WorkDir : '{settings.OutputDir}', InputFile: '{settings.InputFile}', WixFile: '{settings.WixFile}' "); return Task.FromResult(value); } } diff --git a/new-cli/GitVersion.sln.DotSettings b/new-cli/GitVersion.sln.DotSettings index ca580a27b8..71f967e9dc 100644 --- a/new-cli/GitVersion.sln.DotSettings +++ b/new-cli/GitVersion.sln.DotSettings @@ -1,2 +1,729 @@ -<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> - <s:Boolean x:Key="/Default/UserDictionary/Words/=enricher/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> \ No newline at end of file +<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> + + <s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/AutoCompleteBasicCompletion/@EntryValue">True</s:Boolean> + + <s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/IntelliSenseCompletingCharacters/IntelliSenseCompletingCharactersSettingCSharp/UpgradedFromVSSettings/@EntryValue">True</s:Boolean> + + <s:Boolean x:Key="/Default/CodeEditing/Localization/CSharpLocalizationOptions/DontAnalyseVerbatimStrings/@EntryValue">False</s:Boolean> + <s:String x:Key="/Default/CodeInspection/Highlighting/AnalysisEnabled/@EntryValue">SOLUTION</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=AssignToImplicitGlobalInFunctionScope/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=BaseObjectEqualsIsObjectEquals/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CheckNamespace/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ClassNeverInstantiated_002EGlobal/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ClassNeverInstantiated_002ELocal/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ClassWithVirtualMembersNeverInherited_002EGlobal/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CompareNonConstrainedGenericWithNull/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConditionalTernaryEqualBranch/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConditionIsAlwaysTrueOrFalse/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConstantNullCoalescingCondition/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConstructorInitializerLoop/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS0108/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS0109/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS0162/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1570/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1571/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1573/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1574/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1580/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1584/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1587/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1589/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CSharpWarnings_003A_003ACS1710/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=DoubleNegationOperator/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyConstructor/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyDestructor/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyForStatement/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyGeneralCatchClause/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyNamespace/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyStatement/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EventNeverInvoked/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ExpressionIsAlwaysNull/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=FieldCanBeMadeReadOnly_002EGlobal/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=FieldCanBeMadeReadOnly_002ELocal/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=HeuristicUnreachableCode/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=InconsistentNaming/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=LocalizableElement/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MultipleOrderBy/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedField_002EGlobal/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedVariable/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedVariable_002ECompiler/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PartialMethodWithSinglePart/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PartialTypeWithSinglePart/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PossibleIntendedRethrow/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PossibleMistakenCallToGetType_002E1/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PossibleMistakenCallToGetType_002E2/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PossibleNullReferenceException/@EntryIndexedValue">WARNING</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PrivateFieldCanBeConvertedToLocalVariable/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantArgumentName/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantArgumentNameForLiteralExpression/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantAssignment/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantBaseConstructorCall/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantBoolCompare/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCast_002E0/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCatchClause/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCollectionInitializerElementBraces/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCommaInArrayInitializer/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantDefaultFieldInitializer/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantEmptyDefaultSwitchBranch/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantEmptyFinallyBlock/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantEmptyObjectOrCollectionInitializer/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantEnumerableCastCall/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantExplicitArrayCreation/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantExtendsListEntry/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantIfElseBlock/@EntryIndexedValue">SUGGESTION</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantLambdaParameterType/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantLambdaSignatureParentheses/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantNameQualifier/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantStringFormatCall/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantStringToCharArrayCall/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantThisQualifier/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantToStringCall/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantTypeArgumentsOfMethod/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantUsingDirective/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=FormatStringProblem/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=IteratorMethodResultIsIgnored/@EntryIndexedValue">WARNING</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedField_002ELocal/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantBaseQualifier/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCast/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022ClassCanBeSealed_002EGlobal_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022ClassCanBeSealed_002ELocal_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022ConvertIfStatementToReturnStatement_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022ConvertIfStatementToSwitchStatement_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022ConvertToAutoPropertyWithPrivateSetter_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022InvertIf_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022LoopCanBePartlyConvertedToQuery_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022MemberCanBeInternal_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022MemberCanBeMadeStatic_002EGlobal_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022MemberCanBeMadeStatic_002ELocal_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022RedundantArgumentNameForLiteralExpression_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022RedundantToStringCallForValueType_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022SimilarAnonymousTypeNearby_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022SuggestBaseTypeForParameter_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022SuggestUseVarKeywordEverywhere_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022TryStatementsCanBeMerged_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022UnknownCssVendorExtension_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CConfigurableSeverity_0020Id_003D_0022Xaml_002EBindingWithoutContextReferenceNotResolvedHighlighting_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/CodeIssueFilter/IssueTypesToHide/=_003CStaticSeverity_0020Severity_003D_00222_0022_0020Title_003D_0022Structural_0020Search_0020Hints_0022_0020GroupId_003D_0022StructuralSearch_0022_0020_002F_003E/@EntryIndexedValue">DoHide</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=SealedMemberInSealedClass/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=StaticFieldInGenericType/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=SuggestUseVarKeywordEverywhere/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=SuggestUseVarKeywordEvident/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ThreadStaticAtInstanceField/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=TooWideLocalVariableScope/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnassignedField_002ECompiler/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnassignedField_002ELocal/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnreachableCode/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedField_002ECompiler/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedLabel/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedMember_002EGlobal/@EntryIndexedValue">DO_NOT_SHOW</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedMember_002ELocal/@EntryIndexedValue">SUGGESTION</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedParameter_002EGlobal/@EntryIndexedValue">WARNING</s:String> + + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedVariable/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseObjectOrCollectionInitializer/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ValueParameterNotUsed/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=VBPossibleMistakenCallToGetType_002E1/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=VBPossibleMistakenCallToGetType_002E2/@EntryIndexedValue">ERROR</s:String> + <s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=C_0023_0020Only/@EntryIndexedValue"><?xml version="1.0" encoding="utf-16"?><Profile name="C# Only"><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatCode>True</CSReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><IDEA_SETTINGS>&lt;profile version="1.0"&gt; + &lt;option name="myName" value="C# Only" /&gt; + &lt;inspection_tool class="ES6ShorthandObjectProperty" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="JSArrowFunctionBracesCanBeRemoved" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="JSPrimitiveTypeWrapperUsage" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="JSRemoveUnnecessaryParentheses" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="JSUnnecessarySemicolon" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="TypeScriptExplicitMemberType" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="UnnecessaryContinueJS" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="UnnecessaryLabelJS" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="UnnecessaryLabelOnBreakStatementJS" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="UnnecessaryLabelOnContinueStatementJS" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="UnnecessaryReturnJS" enabled="false" level="WARNING" enabled_by_default="false" /&gt; + &lt;inspection_tool class="WrongPropertyKeyValueDelimiter" enabled="false" level="WEAK WARNING" enabled_by_default="false" /&gt; +&lt;/profile&gt;</IDEA_SETTINGS><RIDER_SETTINGS>&lt;profile&gt; + &lt;Language id="CSS"&gt; + &lt;Rearrange&gt;false&lt;/Rearrange&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="EditorConfig"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="HTML"&gt; + &lt;Rearrange&gt;false&lt;/Rearrange&gt; + &lt;OptimizeImports&gt;false&lt;/OptimizeImports&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="HTTP Request"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Handlebars"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Ini"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="JSON"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Jade"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="JavaScript"&gt; + &lt;Rearrange&gt;false&lt;/Rearrange&gt; + &lt;OptimizeImports&gt;false&lt;/OptimizeImports&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Markdown"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Properties"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="RELAX-NG"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="SQL"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="XML"&gt; + &lt;Rearrange&gt;false&lt;/Rearrange&gt; + &lt;OptimizeImports&gt;false&lt;/OptimizeImports&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="yaml"&gt; + &lt;Reformat&gt;false&lt;/Reformat&gt; + &lt;/Language&gt; +&lt;/profile&gt;</RIDER_SETTINGS><CSReorderTypeMembers>True</CSReorderTypeMembers><CSCodeStyleAttributes ArrangeVarStyle="True" ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" ArrangeArgumentsStyle="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeCodeBodyStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" /><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences></Profile></s:String> + + <s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=GitVersion/@EntryIndexedValue"><?xml version="1.0" encoding="utf-16"?><Profile name="GitVersion"><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSUseVar><BehavourStyle>CAN_CHANGE_TO_IMPLICIT</BehavourStyle><LocalVariableStyle>ALWAYS_IMPLICIT</LocalVariableStyle><ForeachVariableStyle>ALWAYS_IMPLICIT</ForeachVariableStyle></CSUseVar><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSReformatCode>True</CSReformatCode><CSReorderTypeMembers>True</CSReorderTypeMembers><JsInsertSemicolon>True</JsInsertSemicolon><JsReformatCode>True</JsReformatCode><CssReformatCode>True</CssReformatCode><CSArrangeThisQualifier>True</CSArrangeThisQualifier><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><HtmlReformatCode>True</HtmlReformatCode><CSShortenReferences>True</CSShortenReferences><CSharpFormatDocComments>True</CSharpFormatDocComments><CssAlphabetizeProperties>True</CssAlphabetizeProperties><CSCodeStyleAttributes ArrangeVarStyle="True" ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" ArrangeArgumentsStyle="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeCodeBodyStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" /><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><IDEA_SETTINGS>&lt;profile version="1.0"&gt; + &lt;option name="myName" value="GitVersion" /&gt; +&lt;/profile&gt;</IDEA_SETTINGS><RIDER_SETTINGS>&lt;profile&gt; + &lt;Language id=""&gt; + &lt;OptimizeImports&gt;false&lt;/OptimizeImports&gt; + &lt;/Language&gt; + &lt;Language id="CMake"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="CSS"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; + &lt;/Language&gt; + &lt;Language id="EditorConfig"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="HTML"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; + &lt;/Language&gt; + &lt;Language id="HTTP Request"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Handlebars"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Ini"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="JSON"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Jade"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="JavaScript"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; + &lt;/Language&gt; + &lt;Language id="Markdown"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Properties"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="RELAX-NG"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="Razor"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="SQL"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="VueExpr"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; + &lt;Language id="XML"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; + &lt;/Language&gt; + &lt;Language id="yaml"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; +&lt;/profile&gt;</RIDER_SETTINGS><UpgradedBackendToFrontendHtml>True</UpgradedBackendToFrontendHtml><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly></Profile></s:String> + <s:String x:Key="/Default/CodeStyle/CodeCleanup/RecentlyUsedProfile/@EntryValue">Default: Reformat Code</s:String> + <s:String x:Key="/Default/CodeStyle/CodeCleanup/SilentCleanupProfile/@EntryValue">GitVersion</s:String> + <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/EXPLICIT_INTERNAL_MODIFIER/@EntryValue">False</s:Boolean> + <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/EXPLICIT_PRIVATE_MODIFIER/@EntryValue">False</s:Boolean> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_FOR_BRACES_STYLE/@EntryValue">ALWAYS_ADD</s:String> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_FOREACH_BRACES_STYLE/@EntryValue">ALWAYS_ADD</s:String> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_IFELSE_BRACES_STYLE/@EntryValue">ALWAYS_ADD</s:String> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_USING_BRACES_STYLE/@EntryValue">ALWAYS_ADD</s:String> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/FORCE_WHILE_BRACES_STYLE/@EntryValue">ALWAYS_ADD</s:String> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_ACCESSORHOLDER_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String> + <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_BEFORE_FIXED_PARENTHESES/@EntryValue">False</s:Boolean> + + + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_ARRAY_INITIALIZER_STYLE/@EntryValue">CHOP_IF_LONG</s:String> + <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_LINES/@EntryValue">False</s:Boolean> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_MULTIPLE_TYPE_PARAMEER_CONSTRAINTS_STYLE/@EntryValue">CHOP_ALWAYS</s:String> + <s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_OBJECT_AND_COLLECTION_INITIALIZER_STYLE/@EntryValue">CHOP_ALWAYS</s:String> + <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/JavaScriptCodeFormatting/ALIGN_MULTIPLE_DECLARATION/@EntryValue">True</s:Boolean> + <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/JavaScriptCodeFormatting/JavaScriptFormatOther/ALIGN_MULTIPLE_DECLARATION/@EntryValue">True</s:Boolean> + <s:String x:Key="/Default/CodeStyle/CSharpFileLayoutPatterns/Pattern/@EntryValue"><?xml version="1.0" encoding="utf-16"?> +<Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns"> + <TypePattern DisplayName="COM interfaces or structs"> + <TypePattern.Match> + <Or> + <And> + <Kind Is="Interface" /> + <Or> + <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute" /> + <HasAttribute Name="System.Runtime.InteropServices.ComImport" /> + </Or> + </And> + <Kind Is="Struct" /> + </Or> + </TypePattern.Match> + </TypePattern> + <TypePattern DisplayName="NUnit Test Fixtures" RemoveRegions="All"> + <TypePattern.Match> + <And> + <Kind Is="Class" /> + <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True" /> + <HasAttribute Name="NUnit.Framework.TestCaseFixtureAttribute" Inherited="True" /> + </And> + </TypePattern.Match> + <Entry DisplayName="Setup/Teardown Methods"> + <Entry.Match> + <And> + <Kind Is="Method" /> + <Or> + <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True" /> + <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True" /> + <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True" /> + <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True" /> + </Or> + </And> + </Entry.Match> + </Entry> + <Entry DisplayName="All other members" /> + <Entry Priority="100" DisplayName="Test Methods"> + <Entry.Match> + <And> + <Kind Is="Method" /> + <HasAttribute Name="NUnit.Framework.TestAttribute" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + </TypePattern> + <TypePattern DisplayName="Default Pattern"> + <Entry Priority="100" DisplayName="Public Delegates"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Kind Is="Delegate" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry Priority="100" DisplayName="Public Enums"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Kind Is="Enum" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Static Fields and Constants"> + <Entry.Match> + <Or> + <Kind Is="Constant" /> + <And> + <Kind Is="Field" /> + <Static /> + </And> + </Or> + </Entry.Match> + <Entry.SortBy> + <Kind Order="Constant Field" /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Fields"> + <Entry.Match> + <And> + <Kind Is="Field" /> + <Not> + <Static /> + </Not> + </And> + </Entry.Match> + <Entry.SortBy> + <Readonly /> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Constructors"> + <Entry.Match> + <Kind Is="Constructor" /> + </Entry.Match> + <Entry.SortBy> + <Static /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Properties, Indexers"> + <Entry.Match> + <Or> + <Kind Is="Property" /> + <Kind Is="Indexer" /> + </Or> + </Entry.Match> + </Entry> + <Entry Priority="100" DisplayName="Interface Implementations"> + <Entry.Match> + <And> + <Kind Is="Member" /> + <ImplementsInterface /> + </And> + </Entry.Match> + <Entry.SortBy> + <ImplementsInterface Immediate="True" /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="All other members" /> + <Entry DisplayName="Nested Types"> + <Entry.Match> + <Kind Is="Type" /> + </Entry.Match> + </Entry> + </TypePattern> +</Patterns></s:String> + <s:String x:Key="/Default/CodeStyle/CSharpMemberOrderPattern/CustomPattern/@EntryValue"><?xml version="1.0" encoding="utf-8" ?> + +<!-- +I. Overall + +I.1 Each pattern can have <Match>....</Match> element. For the given type declaration, the pattern with the match, evaluated to 'true' with the largest weight, will be used +I.2 Each pattern consists of the sequence of <Entry>...</Entry> elements. Type member declarations are distributed between entries +I.3 If pattern has RemoveAllRegions="true" attribute, then all regions will be cleared prior to reordering. Otherwise, only auto-generated regions will be cleared +I.4 The contents of each entry is sorted by given keys (First key is primary, next key is secondary, etc). Then the declarations are grouped and en-regioned by given property + +II. Available match operands + +Each operand may have Weight="..." attribute. This weight will be added to the match weight if the operand is evaluated to 'true'. +The default weight is 1 + +II.1 Boolean functions: +II.1.1 <And>....</And> +II.1.2 <Or>....</Or> +II.1.3 <Not>....</Not> + +II.2 Operands +II.2.1 <Kind Is="..."/>. Kinds are: class, struct, interface, enum, delegate, type, constructor, destructor, property, indexer, method, operator, field, constant, event, member +II.2.2 <Name Is="..." [IgnoreCase="true/false"] />. The 'Is' attribute contains regular expression +II.2.3 <HasAttribute CLRName="..." [Inherit="true/false"] />. The 'CLRName' attribute contains regular expression +II.2.4 <Access Is="..."/>. The 'Is' values are: public, protected, internal, protected internal, private +II.2.5 <Static/> +II.2.6 <Abstract/> +II.2.7 <Virtual/> +II.2.8 <Override/> +II.2.9 <Sealed/> +II.2.10 <Readonly/> +II.2.11 <ImplementsInterface CLRName="..."/>. The 'CLRName' attribute contains regular expression +II.2.12 <HandlesEvent /> +--> + +<Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns"> + + <!--Do not reorder COM interfaces and structs marked by StructLayout attribute--> + <Pattern> + <Match> + <Or Weight="100"> + <And> + <Kind Is="interface"/> + <Or> + <HasAttribute CLRName="System.Runtime.InteropServices.InterfaceTypeAttribute"/> + <HasAttribute CLRName="System.Runtime.InteropServices.ComImport"/> + </Or> + </And> + <HasAttribute CLRName="System.Runtime.InteropServices.StructLayoutAttribute"/> + </Or> + </Match> + </Pattern> + + <!--Special formatting of NUnit test fixture--> + <Pattern RemoveAllRegions="true"> + <Match> + <And Weight="100"> + <Kind Is="class"/> + <HasAttribute CLRName="NUnit.Framework.TestFixtureAttribute" Inherit="true"/> + </And> + </Match> + + <!--Setup/Teardow--> + <Entry> + <Match> + <And> + <Kind Is="method"/> + <Or> + <HasAttribute CLRName="NUnit.Framework.SetUpAttribute" Inherit="true"/> + <HasAttribute CLRName="NUnit.Framework.TearDownAttribute" Inherit="true"/> + <HasAttribute CLRName="NUnit.Framework.FixtureSetUpAttribute" Inherit="true"/> + <HasAttribute CLRName="NUnit.Framework.FixtureTearDownAttribute" Inherit="true"/> + </Or> + </And> + </Match> + </Entry> + + <!--All other members--> + <Entry/> + + <!--Test methods--> + <Entry> + <Match> + <And Weight="100"> + <Kind Is="method"/> + <HasAttribute CLRName="NUnit.Framework.TestAttribute" Inherit="false"/> + </And> + </Match> + <Sort> + <Name/> + </Sort> + </Entry> + </Pattern> + + <!--Default pattern--> + <Pattern> + + <!--public delegate--> + <Entry> + <Match> + <And Weight="100"> + <Access Is="public"/> + <Kind Is="delegate"/> + </And> + </Match> + <Sort> + <Name/> + </Sort> + </Entry> + + <!--public enum--> + <Entry> + <Match> + <And Weight="100"> + <Access Is="public"/> + <Kind Is="enum"/> + </And> + </Match> + <Sort> + <Name/> + </Sort> + </Entry> + + <!--Constructors. Place static one first--> + <Entry> + <Match> + <Kind Is="constructor"/> + </Match> + <Sort> + <Static/> + </Sort> + </Entry> + + <!--properties, indexers--> + <Entry> + <Match> + <Or> + <Kind Is="property"/> + <Kind Is="indexer"/> + </Or> + </Match> + </Entry> + + <!--interface implementations--> + <Entry> + <Match> + <And Weight="100"> + <Kind Is="member"/> + <ImplementsInterface/> + </And> + </Match> + <Sort> + <ImplementsInterface Immediate="true"/> + </Sort> + </Entry> + + <!--all other members--> + <Entry/> + +<!--static fields and constants--> + <Entry> + <Match> + <Or> + <Kind Is="constant"/> + <And> + <Kind Is="field"/> + <Static/> + </And> + </Or> + </Match> + <Sort> + <Kind Order="constant field"/> + </Sort> + </Entry> + + <!--instance fields--> + <Entry> + <Match> + <And> + <Kind Is="field"/> + <Not> + <Static/> + </Not> + </And> + </Match> + <Sort> + <Readonly/> + <Name/> + </Sort> + </Entry> + + <!--nested types--> + <Entry> + <Match> + <Kind Is="type"/> + </Match> + <Sort> + <Name/> + </Sort> + </Entry> + </Pattern> + +</Patterns> +</s:String> + <s:String x:Key="/Default/CodeStyle/CSharpMemberOrderPattern/LayoutType/@EntryValue">CustomLayout</s:String> + <s:Boolean x:Key="/Default/CodeStyle/CSharpUsing/AddImportsToDeepestScope/@EntryValue">False</s:Boolean> + <s:Boolean x:Key="/Default/CodeStyle/CSharpUsing/QualifiedUsingAtNestedScope/@EntryValue">True</s:Boolean> + <s:Boolean x:Key="/Default/CodeStyle/Generate/=Constructor/@KeyIndexDefined">True</s:Boolean> + <s:String x:Key="/Default/CodeStyle/Generate/=Constructor/Options/=XmlDocumentation/@EntryIndexedValue">False</s:String> + <s:Boolean x:Key="/Default/CodeStyle/Generate/=Equality/@KeyIndexDefined">True</s:Boolean> + <s:String x:Key="/Default/CodeStyle/Generate/=Equality/Options/=EqualityOperators/@EntryIndexedValue">False</s:String> + <s:String x:Key="/Default/CodeStyle/Generate/=Equality/Options/=ImplementIEquatable/@EntryIndexedValue">False</s:String> + <s:String x:Key="/Default/CodeStyle/Generate/=Equality/Options/=XmlDocumentation/@EntryIndexedValue">False</s:String> + <s:Boolean x:Key="/Default/CodeStyle/Generate/=Global/@KeyIndexDefined">True</s:Boolean> + <s:String x:Key="/Default/CodeStyle/Generate/=Global/Options/=PropertyBody/@EntryIndexedValue">Automatic property</s:String> + <s:Boolean x:Key="/Default/CodeStyle/Generate/=Implementations/@KeyIndexDefined">True</s:Boolean> + <s:String x:Key="/Default/CodeStyle/Generate/=Implementations/Options/=WrapInRegion/@EntryIndexedValue">False</s:String> + <s:String x:Key="/Default/CodeStyle/Generate/=Implementations/Options/=XmlDocumentation/@EntryIndexedValue">False</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DB/@EntryIndexedValue">DB</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DTC/@EntryIndexedValue">DTC</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ID/@EntryIndexedValue">ID</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=NSB/@EntryIndexedValue">NSB</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SLA/@EntryIndexedValue">SLA</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/EventHandlerPatternLong/@EntryValue">$object$_On$event$</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Constants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=EnumMember/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Interfaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=LocalConstants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Locals/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=MethodPropertyEvent/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Other/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=Parameters/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateConstants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PublicFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=StaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=TypeParameters/@EntryIndexedValue"><Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=TypesAndNamespaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=15b5b1f1_002D457c_002D4ca6_002Db278_002D5615aedc07d3/@EntryIndexedValue"><Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static readonly fields (private)"><ElementKinds><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=236f7aa5_002D7b06_002D43ca_002Dbf2a_002D9b31bfcff09a/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Private" Description="Constant fields (private)"><ElementKinds><Kind Name="CONSTANT_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=2c62818f_002D621b_002D4425_002Dadc9_002D78611099bfcb/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Type parameters"><ElementKinds><Kind Name="TYPE_PARAMETER" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=4a98fdf6_002D7d98_002D4f5a_002Dafeb_002Dea44ad98c70c/@EntryIndexedValue"><Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=53eecf85_002Dd821_002D40e8_002Dac97_002Dfdb734542b84/@EntryIndexedValue"><Policy><Descriptor Staticness="Instance" AccessRightKinds="Protected, ProtectedInternal, Internal, Public, PrivateProtected" Description="Instance fields (not private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=61a991a4_002Dd0a3_002D4d19_002D90a5_002Df8f4d75c30c1/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Local variables"><ElementKinds><Kind Name="LOCAL_VARIABLE" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=669e5282_002Dfb4b_002D4e90_002D91e7_002D07d269d04b60/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Protected, ProtectedInternal, Internal, Public, PrivateProtected" Description="Constant fields (not private)"><ElementKinds><Kind Name="CONSTANT_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=70345118_002D4b40_002D4ece_002D937c_002Dbbeb7a0b2e70/@EntryIndexedValue"><Policy><Descriptor Staticness="Static" AccessRightKinds="Protected, ProtectedInternal, Internal, Public, PrivateProtected" Description="Static fields (not private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=8a85b61a_002D1024_002D4f87_002Db9ef_002D1fdae19930a1/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Parameters"><ElementKinds><Kind Name="PARAMETER" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=8b8504e3_002Df0be_002D4c14_002D9103_002Dc732f2bddc15/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Enum members"><ElementKinds><Kind Name="ENUM_MEMBER" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=a0b4bc4d_002Dd13b_002D4a37_002Db37e_002Dc9c6864e4302/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Types and namespaces"><ElementKinds><Kind Name="NAMESPACE" /><Kind Name="CLASS" /><Kind Name="STRUCT" /><Kind Name="ENUM" /><Kind Name="DELEGATE" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=a4f433b8_002Dabcd_002D4e55_002Da08f_002D82e78cef0f0c/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Local constants"><ElementKinds><Kind Name="LOCAL_CONSTANT" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=a7a3339e_002D4e89_002D4319_002D9735_002Da9dc4cb74cc7/@EntryIndexedValue"><Policy><Descriptor Staticness="Any" AccessRightKinds="Any" Description="Interfaces"><ElementKinds><Kind Name="INTERFACE" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=c873eafb_002Dd57f_002D481d_002D8c93_002D77f6863c2f88/@EntryIndexedValue"><Policy><Descriptor Staticness="Static" AccessRightKinds="Protected, ProtectedInternal, Internal, Public, PrivateProtected" Description="Static readonly fields (not private)"><ElementKinds><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=f9fce829_002De6f4_002D4cb2_002D80f1_002D5497c44f51df/@EntryIndexedValue"><Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FCONSTRUCTOR/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FFUNCTION/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FGLOBAL_005FVARIABLE/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FLABEL/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FLOCAL_005FVARIABLE/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FOBJECT_005FPROPERTY_005FOF_005FFUNCTION/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FPARAMETER/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/EventHandlerPatternLong/@EntryValue">$object$_On$event$</s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Constants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=EnumMember/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Interfaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=LocalConstants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Locals/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=MethodPropertyEvent/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Other/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=Parameters/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PrivateConstants/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PrivateStaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=PublicFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=StaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=TypeParameters/@EntryIndexedValue"><Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/VBNaming/PredefinedNamingRules/=TypesAndNamespaces/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:Boolean x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=5C63448180C9174C8C28A084F80E37DF/@KeyIndexDefined">True</s:Boolean> + <s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=5C63448180C9174C8C28A084F80E37DF/AbsolutePath/@EntryValue">D:\Projects\OSS\GitTools\GitVersion\src\GitVersion.sln.DotSettings</s:String> + <s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=5C63448180C9174C8C28A084F80E37DF/RelativePath/@EntryValue"></s:String> + <s:Boolean x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=File5C63448180C9174C8C28A084F80E37DF/@KeyIndexDefined">True</s:Boolean> + <s:Double x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=File5C63448180C9174C8C28A084F80E37DF/RelativePriority/@EntryValue">1</s:Double> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EdotCover_002EIde_002ECore_002EFilterManagement_002EModel_002ESolutionFilterSettingsManagerMigrateSettings/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EFeature_002EServices_002EDaemon_002ESettings_002EMigration_002ESwaWarningsModeSettingsMigrate/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpAttributeForSingleLineMethodUpgrade/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpFileLayoutPatternsUpgrade/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpRenamePlacementToArrangementMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpUseContinuousIndentInsideBracesMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002EMemberReordering_002EMigrations_002ECSharpFileLayoutPatternRemoveIsAttributeUpgrade/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAddAccessorOwnerDeclarationBracesMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAlwaysTreatStructAsNotReorderableMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002ECSharpPlaceAttributeOnSameLineMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EPredefinedNamingRulesToUserRulesUpgrade/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002EJavaScript_002ECodeStyle_002ESettingsUpgrade_002EJsCodeFormatterSettingsUpgrader/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002EJavaScript_002ECodeStyle_002ESettingsUpgrade_002EJsParsFormattingSettingsUpgrader/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002EJavaScript_002ECodeStyle_002ESettingsUpgrade_002EJsWrapperSettingsUpgrader/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EUnitTestFramework_002EMigrations_002EEnableDisabledProvidersMigration/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/UnitTesting/SeparateAppDomainPerAssembly/@EntryValue">True</s:Boolean> + <s:Boolean x:Key="/Default/Environment/UnitTesting/ShadowCopy/@EntryValue">False</s:Boolean> + <s:String x:Key="/Default/FilterSettingsManager/AttributeFilterXml/@EntryValue"><data /></s:String> + <s:String x:Key="/Default/FilterSettingsManager/CoverageFilterXml/@EntryValue"><data><IncludeFilters /><ExcludeFilters /></data></s:String> + <s:Boolean x:Key="/Default/UserDictionary/Words/=asbjornu/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/UserDictionary/Words/=gitversion/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/UserDictionary/Words/=Reacheable/@EntryIndexedValue">True</s:Boolean> + <s:Boolean x:Key="/Default/UserDictionary/Words/=veyor/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> diff --git a/src/GitVersion.App.Tests/Helpers/ArgumentBuilder.cs b/src/GitVersion.App.Tests/Helpers/ArgumentBuilder.cs index 38678c4987..b16bba1e7e 100644 --- a/src/GitVersion.App.Tests/Helpers/ArgumentBuilder.cs +++ b/src/GitVersion.App.Tests/Helpers/ArgumentBuilder.cs @@ -12,14 +12,14 @@ public override string ToString() { var arguments = new StringBuilder(); - if (!this.WorkingDirectory.IsNullOrWhiteSpace()) + if (!WorkingDirectory.IsNullOrWhiteSpace()) { - arguments.Append(" /targetpath \"").Append(this.WorkingDirectory).Append('\"'); + arguments.Append(" /targetpath \"").Append(WorkingDirectory).Append('\"'); } - if (!this.LogFile.IsNullOrWhiteSpace()) + if (!LogFile.IsNullOrWhiteSpace()) { - arguments.Append(" /l \"").Append(this.LogFile).Append('\"'); + arguments.Append(" /l \"").Append(LogFile).Append('\"'); } arguments.Append(additionalArguments); diff --git a/src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs b/src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs index a62df0f342..1264ca48b0 100644 --- a/src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs +++ b/src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs @@ -1,7 +1,7 @@ using GitVersion.Agents; -using GitVersion.Core.Tests.Helpers; using GitVersion.Helpers; using GitVersion.Testing.Extensions; +using GitVersion.Tests; using LibGit2Sharp; namespace GitVersion.App.Tests; diff --git a/src/GitVersion.App/ArgumentParser.cs b/src/GitVersion.App/ArgumentParser.cs index 569e9c47f9..8f8e172fe9 100644 --- a/src/GitVersion.App/ArgumentParser.cs +++ b/src/GitVersion.App/ArgumentParser.cs @@ -292,7 +292,7 @@ private static bool ParseSwitches(Arguments arguments, string? name, IReadOnlyLi if (name.IsSwitch("verbosity")) { - ParseVerbosity(arguments, value); + arguments.Verbosity = ParseVerbosity(value); return true; } @@ -437,13 +437,8 @@ private static void ParseOutput(Arguments arguments, IEnumerable<string>? values } } - private static void ParseVerbosity(Arguments arguments, string? value) - { - if (!Enum.TryParse(value, true, out arguments.Verbosity)) - { - throw new WarningException($"Could not parse Verbosity value '{value}'"); - } - } + private static Verbosity ParseVerbosity(string? value) => + Enum.TryParse(value, true, out Verbosity verbosity) ? verbosity : throw new WarningException($"Could not parse Verbosity value '{value}'"); private static void ParseOverrideConfig(Arguments arguments, IReadOnlyCollection<string>? values) { diff --git a/src/GitVersion.App/Arguments.cs b/src/GitVersion.App/Arguments.cs index cd357cb803..1c00a680c1 100644 --- a/src/GitVersion.App/Arguments.cs +++ b/src/GitVersion.App/Arguments.cs @@ -5,40 +5,33 @@ namespace GitVersion; internal class Arguments { - public AuthenticationInfo Authentication = new(); - - public string? ConfigurationFile; - public IReadOnlyDictionary<object, object?> OverrideConfiguration = new Dictionary<object, object?>(); - public bool ShowConfiguration; - - public string? TargetPath; - - public string? TargetUrl; - public string? TargetBranch; - public string? CommitId; - public string? ClonePath; - - public bool Diag; - public bool IsVersion; - public bool IsHelp; - - public bool NoFetch; - public bool NoCache; - public bool NoNormalize; - public bool AllowShallow; - - public string? LogFilePath; - public string? ShowVariable; - public string? Format; - public string? OutputFile; - public ISet<OutputType> Output = new HashSet<OutputType>(); - public Verbosity Verbosity = Verbosity.Normal; - - public bool UpdateWixVersionFile; - public bool UpdateProjectFiles; - public bool UpdateAssemblyInfo; - public bool EnsureAssemblyInfo; - public ISet<string> UpdateAssemblyInfoFileName = new HashSet<string>(); + public AuthenticationInfo Authentication { get; set; } = new(); + public string? ConfigurationFile { get; set; } + public IReadOnlyDictionary<object, object?> OverrideConfiguration { get; set; } = new Dictionary<object, object?>(); + public bool ShowConfiguration { get; set; } + public string? TargetPath { get; set; } + public string? TargetUrl { get; set; } + public string? TargetBranch { get; set; } + public string? CommitId { get; set; } + public string? ClonePath { get; set; } + public bool Diag { get; set; } + public bool IsVersion { get; set; } + public bool IsHelp { get; set; } + public bool NoFetch { get; set; } + public bool NoCache { get; set; } + public bool NoNormalize { get; set; } + public bool AllowShallow { get; set; } + public string? LogFilePath { get; set; } + public string? ShowVariable { get; set; } + public string? Format { get; set; } + public string? OutputFile { get; set; } + public ISet<OutputType> Output { get; set; } = new HashSet<OutputType>(); + public Verbosity Verbosity { get; set; } = Verbosity.Normal; + public bool UpdateWixVersionFile { get; set; } + public bool UpdateProjectFiles { get; set; } + public bool UpdateAssemblyInfo { get; set; } + public bool EnsureAssemblyInfo { get; set; } + public ISet<string> UpdateAssemblyInfoFileName { get; set; } = new HashSet<string>(); public GitVersionOptions ToOptions() { @@ -54,9 +47,9 @@ public GitVersionOptions ToOptions() AuthenticationInfo = { - Username = this.Authentication.Username, - Password = this.Authentication.Password, - Token = this.Authentication.Token + Username = Authentication.Username, + Password = Authentication.Password, + Token = Authentication.Token }, ConfigurationInfo = @@ -99,7 +92,7 @@ public GitVersionOptions ToOptions() OutputFile = OutputFile }; - var workingDirectory = this.TargetPath?.TrimEnd('/', '\\'); + var workingDirectory = TargetPath?.TrimEnd('/', '\\'); if (workingDirectory != null) { gitVersionOptions.WorkingDirectory = workingDirectory; diff --git a/src/GitVersion.App/OverrideConfigurationOptionParser.cs b/src/GitVersion.App/OverrideConfigurationOptionParser.cs index 2b19243e63..9b7a3ee403 100644 --- a/src/GitVersion.App/OverrideConfigurationOptionParser.cs +++ b/src/GitVersion.App/OverrideConfigurationOptionParser.cs @@ -50,7 +50,7 @@ private static bool IsSupportedPropertyType(Type propertyType) || unwrappedType == typeof(VersionStrategies[]); } - internal void SetValue(string key, string value) => overrideConfiguration[key] = QuotedStringHelpers.UnquoteText(value); + internal void SetValue(string key, string value) => this.overrideConfiguration[key] = QuotedStringHelpers.UnquoteText(value); internal IReadOnlyDictionary<object, object?> GetOverrideConfiguration() => this.overrideConfiguration; } diff --git a/src/GitVersion.BuildAgents/Agents/AppVeyor.cs b/src/GitVersion.BuildAgents/Agents/AppVeyor.cs index b9c46c8da6..27e6ab858f 100644 --- a/src/GitVersion.BuildAgents/Agents/AppVeyor.cs +++ b/src/GitVersion.BuildAgents/Agents/AppVeyor.cs @@ -13,8 +13,8 @@ internal class AppVeyor(IEnvironment environment, ILog log, IFileSystem fileSyst public override string SetBuildNumber(GitVersionVariables variables) { - var buildNumber = Environment.GetEnvironmentVariable("APPVEYOR_BUILD_NUMBER"); - var apiUrl = Environment.GetEnvironmentVariable("APPVEYOR_API_URL") ?? throw new Exception("APPVEYOR_API_URL environment variable not set"); + var buildNumber = this.environment.GetEnvironmentVariable("APPVEYOR_BUILD_NUMBER"); + var apiUrl = this.environment.GetEnvironmentVariable("APPVEYOR_API_URL") ?? throw new Exception("APPVEYOR_API_URL environment variable not set"); using var httpClient = GetHttpClient(apiUrl); @@ -40,7 +40,7 @@ public override string SetBuildNumber(GitVersionVariables variables) public override string[] SetOutputVariables(string name, string? value) { - var apiUrl = Environment.GetEnvironmentVariable("APPVEYOR_API_URL") ?? throw new Exception("APPVEYOR_API_URL environment variable not set"); + var apiUrl = this.environment.GetEnvironmentVariable("APPVEYOR_API_URL") ?? throw new Exception("APPVEYOR_API_URL environment variable not set"); var httpClient = GetHttpClient(apiUrl); var body = new @@ -66,10 +66,10 @@ public override string[] SetOutputVariables(string name, string? value) public override string? GetCurrentBranch(bool usingDynamicRepos) { - var pullRequestBranchName = Environment.GetEnvironmentVariable("APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH"); + var pullRequestBranchName = this.environment.GetEnvironmentVariable("APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH"); return !pullRequestBranchName.IsNullOrWhiteSpace() ? pullRequestBranchName - : this.Environment.GetEnvironmentVariable("APPVEYOR_REPO_BRANCH"); + : this.environment.GetEnvironmentVariable("APPVEYOR_REPO_BRANCH"); } public override bool PreventFetch() => false; diff --git a/src/GitVersion.BuildAgents/Agents/AzurePipelines.cs b/src/GitVersion.BuildAgents/Agents/AzurePipelines.cs index d372f067b4..86dc7d4fdf 100644 --- a/src/GitVersion.BuildAgents/Agents/AzurePipelines.cs +++ b/src/GitVersion.BuildAgents/Agents/AzurePipelines.cs @@ -19,11 +19,11 @@ public override string[] SetOutputVariables(string name, string? value) => public override string? GetCurrentBranch(bool usingDynamicRepos) { - var gitBranch = Environment.GetEnvironmentVariable("GIT_BRANCH"); + var gitBranch = this.environment.GetEnvironmentVariable("GIT_BRANCH"); if (gitBranch is not null) return gitBranch; - var sourceBranch = Environment.GetEnvironmentVariable("BUILD_SOURCEBRANCH"); + var sourceBranch = this.environment.GetEnvironmentVariable("BUILD_SOURCEBRANCH"); // https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml // BUILD_SOURCEBRANCH must be used only for "real" branches, not for tags. @@ -37,7 +37,7 @@ public override string SetBuildNumber(GitVersionVariables variables) { // For AzurePipelines, we'll get the Build Number and insert GitVersion variables where // specified - var buildNumberEnv = Environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); + var buildNumberEnv = this.environment.GetEnvironmentVariable("BUILD_BUILDNUMBER"); if (buildNumberEnv.IsNullOrWhiteSpace()) return variables.FullSemVer; diff --git a/src/GitVersion.BuildAgents/Agents/BitBucketPipelines.cs b/src/GitVersion.BuildAgents/Agents/BitBucketPipelines.cs index ec79090b94..87640f9350 100644 --- a/src/GitVersion.BuildAgents/Agents/BitBucketPipelines.cs +++ b/src/GitVersion.BuildAgents/Agents/BitBucketPipelines.cs @@ -55,13 +55,13 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable .Select(variable => $"export GITVERSION_{variable.Key.ToUpperInvariant()}={variable.Value}") .ToList(); - this.FileSystem.File.WriteAllLines(this.propertyFile, exports); + this.fileSystem.File.WriteAllLines(this.propertyFile, exports); var psExports = variables .Select(variable => $"$GITVERSION_{variable.Key.ToUpperInvariant()} = \"{variable.Value}\"") .ToList(); - this.FileSystem.File.WriteAllLines(this.ps1File, psExports); + this.fileSystem.File.WriteAllLines(this.ps1File, psExports); } public override string? GetCurrentBranch(bool usingDynamicRepos) @@ -72,7 +72,7 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable private string? EvaluateEnvironmentVariable(string variableName) { - var branchName = Environment.GetEnvironmentVariable(variableName); + var branchName = this.environment.GetEnvironmentVariable(variableName); this.Log.Info("Evaluating environment variable {0} : {1}", variableName, branchName ?? "(null)"); return branchName; } diff --git a/src/GitVersion.BuildAgents/Agents/BuildKite.cs b/src/GitVersion.BuildAgents/Agents/BuildKite.cs index bdf325460a..3b3bc5d844 100644 --- a/src/GitVersion.BuildAgents/Agents/BuildKite.cs +++ b/src/GitVersion.BuildAgents/Agents/BuildKite.cs @@ -10,7 +10,7 @@ internal class BuildKite(IEnvironment environment, ILog log, IFileSystem fileSys protected override string EnvironmentVariable => EnvironmentVariableName; - public override bool CanApplyToCurrentContext() => "true".Equals(Environment.GetEnvironmentVariable(EnvironmentVariable), StringComparison.OrdinalIgnoreCase); + public override bool CanApplyToCurrentContext() => "true".Equals(this.environment.GetEnvironmentVariable(EnvironmentVariable), StringComparison.OrdinalIgnoreCase); public override string SetBuildNumber(GitVersionVariables variables) => string.Empty; // There is no equivalent function in BuildKite. @@ -20,10 +20,10 @@ public override string[] SetOutputVariables(string name, string? value) => public override string? GetCurrentBranch(bool usingDynamicRepos) { - var pullRequest = Environment.GetEnvironmentVariable("BUILDKITE_PULL_REQUEST"); + var pullRequest = this.environment.GetEnvironmentVariable("BUILDKITE_PULL_REQUEST"); if (string.IsNullOrEmpty(pullRequest) || pullRequest == "false") { - return Environment.GetEnvironmentVariable("BUILDKITE_BRANCH"); + return this.environment.GetEnvironmentVariable("BUILDKITE_BRANCH"); } // For pull requests BUILDKITE_BRANCH refers to the head, so adjust the diff --git a/src/GitVersion.BuildAgents/Agents/CodeBuild.cs b/src/GitVersion.BuildAgents/Agents/CodeBuild.cs index 30b710d8c4..5cae73b79a 100644 --- a/src/GitVersion.BuildAgents/Agents/CodeBuild.cs +++ b/src/GitVersion.BuildAgents/Agents/CodeBuild.cs @@ -26,9 +26,9 @@ public override string[] SetOutputVariables(string name, string? value) => public override string? GetCurrentBranch(bool usingDynamicRepos) { - var currentBranch = Environment.GetEnvironmentVariable(WebHookEnvironmentVariableName); + var currentBranch = this.environment.GetEnvironmentVariable(WebHookEnvironmentVariableName); - return currentBranch.IsNullOrEmpty() ? Environment.GetEnvironmentVariable(SourceVersionEnvironmentVariableName) : currentBranch; + return currentBranch.IsNullOrEmpty() ? this.environment.GetEnvironmentVariable(SourceVersionEnvironmentVariableName) : currentBranch; } public override void WriteIntegration(Action<string?> writer, GitVersionVariables variables, bool updateBuildNumber = true) @@ -38,11 +38,11 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable base.WriteIntegration(writer, variables, updateBuildNumber); writer($"Outputting variables to '{this.file}' ... "); - this.FileSystem.File.WriteAllLines(this.file, SetOutputVariables(variables)); + this.fileSystem.File.WriteAllLines(this.file, SetOutputVariables(variables)); } public override bool PreventFetch() => true; - public override bool CanApplyToCurrentContext() => !Environment.GetEnvironmentVariable(WebHookEnvironmentVariableName).IsNullOrEmpty() - || !Environment.GetEnvironmentVariable(SourceVersionEnvironmentVariableName).IsNullOrEmpty(); + public override bool CanApplyToCurrentContext() => !this.environment.GetEnvironmentVariable(WebHookEnvironmentVariableName).IsNullOrEmpty() + || !this.environment.GetEnvironmentVariable(SourceVersionEnvironmentVariableName).IsNullOrEmpty(); } diff --git a/src/GitVersion.BuildAgents/Agents/Drone.cs b/src/GitVersion.BuildAgents/Agents/Drone.cs index 5895fe791b..e03bef5aa7 100644 --- a/src/GitVersion.BuildAgents/Agents/Drone.cs +++ b/src/GitVersion.BuildAgents/Agents/Drone.cs @@ -9,7 +9,7 @@ internal class Drone(IEnvironment environment, ILog log, IFileSystem fileSystem) { public const string EnvironmentVariableName = "DRONE"; protected override string EnvironmentVariable => EnvironmentVariableName; - public override bool CanApplyToCurrentContext() => "true".Equals(Environment.GetEnvironmentVariable(EnvironmentVariable), StringComparison.OrdinalIgnoreCase); + public override bool CanApplyToCurrentContext() => "true".Equals(this.environment.GetEnvironmentVariable(EnvironmentVariable), StringComparison.OrdinalIgnoreCase); public override string SetBuildNumber(GitVersionVariables variables) => variables.FullSemVer; @@ -23,20 +23,20 @@ public override string[] SetOutputVariables(string name, string? value) => // In Drone DRONE_BRANCH variable is equal to destination branch in case of pull request // https://discourse.drone.io/t/getting-the-branch-a-pull-request-is-created-from/670 // Unfortunately, DRONE_REFSPEC isn't populated, however CI_COMMIT_REFSPEC can be used instead of. - var pullRequestNumber = Environment.GetEnvironmentVariable("DRONE_PULL_REQUEST"); - if (pullRequestNumber.IsNullOrWhiteSpace()) return this.Environment.GetEnvironmentVariable("DRONE_BRANCH"); + var pullRequestNumber = this.environment.GetEnvironmentVariable("DRONE_PULL_REQUEST"); + if (pullRequestNumber.IsNullOrWhiteSpace()) return this.environment.GetEnvironmentVariable("DRONE_BRANCH"); // DRONE_SOURCE_BRANCH is available in Drone 1.x.x version - var sourceBranch = this.Environment.GetEnvironmentVariable("DRONE_SOURCE_BRANCH"); + var sourceBranch = this.environment.GetEnvironmentVariable("DRONE_SOURCE_BRANCH"); if (!sourceBranch.IsNullOrWhiteSpace()) return sourceBranch; // In drone lower than 1.x.x source branch can be parsed from CI_COMMIT_REFSPEC // CI_COMMIT_REFSPEC - {sourceBranch}:{destinationBranch} // https://github.com/drone/drone/issues/2222 - var ciCommitRefSpec = this.Environment.GetEnvironmentVariable("CI_COMMIT_REFSPEC"); - if (ciCommitRefSpec.IsNullOrWhiteSpace()) return this.Environment.GetEnvironmentVariable("DRONE_BRANCH"); + var ciCommitRefSpec = this.environment.GetEnvironmentVariable("CI_COMMIT_REFSPEC"); + if (ciCommitRefSpec.IsNullOrWhiteSpace()) return this.environment.GetEnvironmentVariable("DRONE_BRANCH"); var colonIndex = ciCommitRefSpec.IndexOf(':'); - return colonIndex > 0 ? ciCommitRefSpec[..colonIndex] : this.Environment.GetEnvironmentVariable("DRONE_BRANCH"); + return colonIndex > 0 ? ciCommitRefSpec[..colonIndex] : this.environment.GetEnvironmentVariable("DRONE_BRANCH"); } public override bool PreventFetch() => false; diff --git a/src/GitVersion.BuildAgents/Agents/EnvRun.cs b/src/GitVersion.BuildAgents/Agents/EnvRun.cs index c74962f92b..0c90bbcece 100644 --- a/src/GitVersion.BuildAgents/Agents/EnvRun.cs +++ b/src/GitVersion.BuildAgents/Agents/EnvRun.cs @@ -11,9 +11,9 @@ internal class EnvRun(IEnvironment environment, ILog log, IFileSystem fileSystem protected override string EnvironmentVariable => EnvironmentVariableName; public override bool CanApplyToCurrentContext() { - var envRunDatabasePath = Environment.GetEnvironmentVariable(EnvironmentVariableName); + var envRunDatabasePath = this.environment.GetEnvironmentVariable(EnvironmentVariableName); if (envRunDatabasePath.IsNullOrEmpty()) return false; - if (this.FileSystem.File.Exists(envRunDatabasePath)) return true; + if (this.fileSystem.File.Exists(envRunDatabasePath)) return true; this.Log.Error($"The database file of EnvRun.exe was not found at {envRunDatabasePath}."); return false; diff --git a/src/GitVersion.BuildAgents/Agents/GitHubActions.cs b/src/GitVersion.BuildAgents/Agents/GitHubActions.cs index 7bd1515e11..3c99588773 100644 --- a/src/GitVersion.BuildAgents/Agents/GitHubActions.cs +++ b/src/GitVersion.BuildAgents/Agents/GitHubActions.cs @@ -27,12 +27,12 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable // https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files // The outgoing environment variables must be written to a temporary file (identified by the $GITHUB_ENV environment // variable, which changes for every step in a workflow) which is then parsed. That file must also be UTF-8, or it will fail. - var gitHubSetEnvFilePath = this.Environment.GetEnvironmentVariable(GitHubSetEnvTempFileEnvironmentVariableName); + var gitHubSetEnvFilePath = this.environment.GetEnvironmentVariable(GitHubSetEnvTempFileEnvironmentVariableName); if (gitHubSetEnvFilePath != null) { writer($"Writing version variables to $GITHUB_ENV file for '{GetType().Name}'."); - using var streamWriter = this.FileSystem.File.AppendText(gitHubSetEnvFilePath); + using var streamWriter = this.fileSystem.File.AppendText(gitHubSetEnvFilePath); foreach (var (key, value) in variables) { if (!value.IsNullOrEmpty()) @@ -53,8 +53,8 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable // GITHUB_REF must be used only for "real" branches, not for tags. // Bug fix for https://github.com/GitTools/GitVersion/issues/2838 - var refType = Environment.GetEnvironmentVariable("GITHUB_REF_TYPE") ?? ""; - return refType.Equals("tag", StringComparison.OrdinalIgnoreCase) ? null : Environment.GetEnvironmentVariable("GITHUB_REF"); + var refType = this.environment.GetEnvironmentVariable("GITHUB_REF_TYPE") ?? ""; + return refType.Equals("tag", StringComparison.OrdinalIgnoreCase) ? null : this.environment.GetEnvironmentVariable("GITHUB_REF"); } public override bool PreventFetch() => true; diff --git a/src/GitVersion.BuildAgents/Agents/GitLabCi.cs b/src/GitVersion.BuildAgents/Agents/GitLabCi.cs index 90308f1e5e..cabf2885cf 100644 --- a/src/GitVersion.BuildAgents/Agents/GitLabCi.cs +++ b/src/GitVersion.BuildAgents/Agents/GitLabCi.cs @@ -27,8 +27,8 @@ public override string[] SetOutputVariables(string name, string? value) => // CI_COMMIT_TAG is only available in tag pipelines, // so we can exit if CI_COMMIT_REF_NAME would return the tag public override string? GetCurrentBranch(bool usingDynamicRepos) => - string.IsNullOrEmpty(this.Environment.GetEnvironmentVariable("CI_COMMIT_TAG")) - ? this.Environment.GetEnvironmentVariable("CI_COMMIT_REF_NAME") + string.IsNullOrEmpty(this.environment.GetEnvironmentVariable("CI_COMMIT_TAG")) + ? this.environment.GetEnvironmentVariable("CI_COMMIT_REF_NAME") : null; public override bool PreventFetch() => true; @@ -41,6 +41,6 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable base.WriteIntegration(writer, variables, updateBuildNumber); writer($"Outputting variables to '{this.file}' ... "); - this.FileSystem.File.WriteAllLines(this.file, SetOutputVariables(variables)); + this.fileSystem.File.WriteAllLines(this.file, SetOutputVariables(variables)); } } diff --git a/src/GitVersion.BuildAgents/Agents/Jenkins.cs b/src/GitVersion.BuildAgents/Agents/Jenkins.cs index 57c78aede1..9a50b5df46 100644 --- a/src/GitVersion.BuildAgents/Agents/Jenkins.cs +++ b/src/GitVersion.BuildAgents/Agents/Jenkins.cs @@ -23,10 +23,10 @@ public override string[] SetOutputVariables(string name, string? value) => ]; public override string? GetCurrentBranch(bool usingDynamicRepos) => IsPipelineAsCode() - ? Environment.GetEnvironmentVariable("BRANCH_NAME") - : Environment.GetEnvironmentVariable("GIT_LOCAL_BRANCH") ?? Environment.GetEnvironmentVariable("GIT_BRANCH"); + ? this.environment.GetEnvironmentVariable("BRANCH_NAME") + : this.environment.GetEnvironmentVariable("GIT_LOCAL_BRANCH") ?? this.environment.GetEnvironmentVariable("GIT_BRANCH"); - private bool IsPipelineAsCode() => !Environment.GetEnvironmentVariable("BRANCH_NAME").IsNullOrEmpty(); + private bool IsPipelineAsCode() => !this.environment.GetEnvironmentVariable("BRANCH_NAME").IsNullOrEmpty(); public override bool PreventFetch() => true; @@ -44,6 +44,6 @@ public override void WriteIntegration(Action<string?> writer, GitVersionVariable base.WriteIntegration(writer, variables, updateBuildNumber); writer($"Outputting variables to '{this.file}' ... "); - this.FileSystem.File.WriteAllLines(this.file, SetOutputVariables(variables)); + this.fileSystem.File.WriteAllLines(this.file, SetOutputVariables(variables)); } } diff --git a/src/GitVersion.BuildAgents/Agents/MyGet.cs b/src/GitVersion.BuildAgents/Agents/MyGet.cs index dad7d7feb7..587a3c625b 100644 --- a/src/GitVersion.BuildAgents/Agents/MyGet.cs +++ b/src/GitVersion.BuildAgents/Agents/MyGet.cs @@ -12,8 +12,7 @@ internal class MyGet(IEnvironment environment, ILog log, IFileSystem fileSystem) protected override string EnvironmentVariable => EnvironmentVariableName; public override bool CanApplyToCurrentContext() { - var buildRunner = Environment.GetEnvironmentVariable(EnvironmentVariable); - + var buildRunner = this.environment.GetEnvironmentVariable(EnvironmentVariable); return !buildRunner.IsNullOrEmpty() && buildRunner.Equals("MyGet", StringComparison.InvariantCultureIgnoreCase); } diff --git a/src/GitVersion.BuildAgents/Agents/SpaceAutomation.cs b/src/GitVersion.BuildAgents/Agents/SpaceAutomation.cs index 2814896e04..da79d864ce 100644 --- a/src/GitVersion.BuildAgents/Agents/SpaceAutomation.cs +++ b/src/GitVersion.BuildAgents/Agents/SpaceAutomation.cs @@ -10,7 +10,7 @@ internal class SpaceAutomation(IEnvironment environment, ILog log, IFileSystem f protected override string EnvironmentVariable => EnvironmentVariableName; - public override string? GetCurrentBranch(bool usingDynamicRepos) => Environment.GetEnvironmentVariable("JB_SPACE_GIT_BRANCH"); + public override string? GetCurrentBranch(bool usingDynamicRepos) => this.environment.GetEnvironmentVariable("JB_SPACE_GIT_BRANCH"); public override string[] SetOutputVariables(string name, string? value) => []; diff --git a/src/GitVersion.BuildAgents/Agents/TeamCity.cs b/src/GitVersion.BuildAgents/Agents/TeamCity.cs index cae3ca8ab3..3d31681f39 100644 --- a/src/GitVersion.BuildAgents/Agents/TeamCity.cs +++ b/src/GitVersion.BuildAgents/Agents/TeamCity.cs @@ -14,7 +14,7 @@ internal class TeamCity(IEnvironment environment, ILog log, IFileSystem fileSyst public override string? GetCurrentBranch(bool usingDynamicRepos) { - var branchName = Environment.GetEnvironmentVariable("Git_Branch"); + var branchName = this.environment.GetEnvironmentVariable("Git_Branch"); if (!branchName.IsNullOrEmpty()) return branchName; if (!usingDynamicRepos) @@ -32,7 +32,7 @@ TeamCity doesn't make the current branch available through environmental variabl See https://gitversion.net/docs/reference/build-servers/teamcity for more info """); - public override bool PreventFetch() => !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("Git_Branch")); + public override bool PreventFetch() => !string.IsNullOrEmpty(this.environment.GetEnvironmentVariable("Git_Branch")); public override string[] SetOutputVariables(string name, string? value) => [ diff --git a/src/GitVersion.BuildAgents/Agents/TravisCI.cs b/src/GitVersion.BuildAgents/Agents/TravisCI.cs index 43eb4638c8..ecdb7c161a 100644 --- a/src/GitVersion.BuildAgents/Agents/TravisCI.cs +++ b/src/GitVersion.BuildAgents/Agents/TravisCI.cs @@ -9,7 +9,7 @@ internal class TravisCi(IEnvironment environment, ILog log, IFileSystem fileSyst public const string EnvironmentVariableName = "TRAVIS"; protected override string EnvironmentVariable => EnvironmentVariableName; - public override bool CanApplyToCurrentContext() => "true".Equals(Environment.GetEnvironmentVariable(EnvironmentVariable)) && "true".Equals(Environment.GetEnvironmentVariable("CI")); + public override bool CanApplyToCurrentContext() => "true".Equals(this.environment.GetEnvironmentVariable(EnvironmentVariable)) && "true".Equals(this.environment.GetEnvironmentVariable("CI")); public override string SetBuildNumber(GitVersionVariables variables) => variables.FullSemVer; diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs index 537ca4abfd..49949d459d 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs @@ -21,7 +21,7 @@ public void Setup() { this.repoPath = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "MyGitRepo"); this.workingPath = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "MyGitRepo", "Working"); - var options = Options.Create(new GitVersionOptions { WorkingDirectory = repoPath }); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = this.repoPath }); var sp = ConfigureServices(services => services.AddSingleton(options)); diff --git a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs index db02bc5553..1cecfcfda2 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs @@ -18,7 +18,7 @@ public class ConfigurationProviderTests : TestBase public void Setup() { this.repoPath = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "MyGitRepo"); - var options = Options.Create(new GitVersionOptions { WorkingDirectory = repoPath }); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = this.repoPath }); var sp = ConfigureServices(services => services.AddSingleton(options)); this.configurationProvider = (ConfigurationProvider)sp.GetRequiredService<IConfigurationProvider>(); this.fileSystem = sp.GetRequiredService<IFileSystem>(); @@ -282,7 +282,7 @@ public void NoWarnOnGitVersionYmlFile() var logAppender = new TestLogAppender(Action); var log = new Log(logAppender); - var options = Options.Create(new GitVersionOptions { WorkingDirectory = repoPath }); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = this.repoPath }); var sp = ConfigureServices(services => { services.AddSingleton(options); diff --git a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs index 282580671e..5de8606187 100644 --- a/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs +++ b/src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs @@ -20,7 +20,7 @@ public void CanDeserialize() commits-before: 2015-10-23T12:23:15 """; - var configuration = serializer.ReadConfiguration(yaml); + var configuration = this.serializer.ReadConfiguration(yaml); configuration.ShouldNotBeNull(); configuration.Ignore.ShouldNotBeNull(); @@ -40,7 +40,7 @@ public void ShouldSupportsOtherSequenceFormat() - 6c19c7c219ecf8dbc468042baefa73a1b213e8b1 """; - var configuration = serializer.ReadConfiguration(yaml); + var configuration = this.serializer.ReadConfiguration(yaml); configuration.ShouldNotBeNull(); configuration.Ignore.ShouldNotBeNull(); @@ -53,7 +53,7 @@ public void WhenNotInConfigShouldHaveDefaults() { const string yaml = "next-version: 1.0"; - var configuration = serializer.ReadConfiguration(yaml); + var configuration = this.serializer.ReadConfiguration(yaml); configuration.ShouldNotBeNull(); configuration.Ignore.ShouldNotBeNull(); @@ -70,7 +70,7 @@ public void WhenBadDateFormatShouldFail() commits-before: bad format date """; - Should.Throw<YamlException>(() => serializer.ReadConfiguration(yaml)); + Should.Throw<YamlException>(() => this.serializer.ReadConfiguration(yaml)); } [Test] @@ -78,7 +78,7 @@ public void ShouldSupportScalarVersionStrategiesOverrideFormat() { const string yaml = "strategies: ConfiguredNextVersion, TaggedCommit"; - var configuration = serializer.ReadConfiguration(yaml); + var configuration = this.serializer.ReadConfiguration(yaml); configuration.ShouldNotBeNull(); configuration.VersionStrategy.ShouldBe(VersionStrategies.ConfiguredNextVersion | VersionStrategies.TaggedCommit); diff --git a/src/GitVersion.Configuration.Tests/Workflows/WorkflowsTests.cs b/src/GitVersion.Configuration.Tests/Workflows/WorkflowsTests.cs index 7931e1997f..f6143ef685 100644 --- a/src/GitVersion.Configuration.Tests/Workflows/WorkflowsTests.cs +++ b/src/GitVersion.Configuration.Tests/Workflows/WorkflowsTests.cs @@ -18,7 +18,7 @@ public void CheckWorkflowsAreUpdated(string workflow, IConfigurationBuilder conf { var configuration = configurationBuilder.Build(); - var serializedConfiguration = serializer.Serialize(configuration); + var serializedConfiguration = this.serializer.Serialize(configuration); var segments = workflow.Split("/"); var folderName = segments[0]; var fileName = segments[^1]; diff --git a/src/GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs index c45a5625bd..a29fe8545f 100644 --- a/src/GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/BranchConfigurationBuilder.cs @@ -159,24 +159,24 @@ public virtual BranchConfigurationBuilder WithConfiguration(IBranchConfiguration public IBranchConfiguration Build() => new BranchConfiguration { - DeploymentMode = deploymentMode, - Label = label, - Increment = increment, - RegularExpression = regularExpression, - TracksReleaseBranches = tracksReleaseBranches, - TrackMergeTarget = trackMergeTarget, - TrackMergeMessage = trackMergeMessage, - CommitMessageIncrementing = commitMessageIncrementing, - IsMainBranch = isMainBranch, - IsReleaseBranch = isReleaseBranch, + DeploymentMode = this.deploymentMode, + Label = this.label, + Increment = this.increment, + RegularExpression = this.regularExpression, + TracksReleaseBranches = this.tracksReleaseBranches, + TrackMergeTarget = this.trackMergeTarget, + TrackMergeMessage = this.trackMergeMessage, + CommitMessageIncrementing = this.commitMessageIncrementing, + IsMainBranch = this.isMainBranch, + IsReleaseBranch = this.isReleaseBranch, PreventIncrement = new PreventIncrementConfiguration { - OfMergedBranch = preventIncrementOfMergedBranch, - WhenBranchMerged = preventIncrementWhenBranchMerged, - WhenCurrentCommitTagged = preventIncrementWhenCurrentCommitTagged + OfMergedBranch = this.preventIncrementOfMergedBranch, + WhenBranchMerged = this.preventIncrementWhenBranchMerged, + WhenCurrentCommitTagged = this.preventIncrementWhenCurrentCommitTagged }, - PreReleaseWeight = preReleaseWeight, - SourceBranches = sourceBranches, - IsSourceBranchFor = isSourceBranchFor + PreReleaseWeight = this.preReleaseWeight, + SourceBranches = this.sourceBranches, + IsSourceBranchFor = this.isSourceBranchFor }; } diff --git a/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs b/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs index aaf63342db..6efb5fce62 100644 --- a/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs +++ b/src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs @@ -399,7 +399,7 @@ public virtual IGitVersionConfiguration Build() CommitDateFormat = this.commitDateFormat, UpdateBuildNumber = this.updateBuildNumber, SemanticVersionFormat = this.semanticVersionFormat, - VersionStrategies = versionStrategies, + VersionStrategies = this.versionStrategies, Branches = branches, MergeMessageFormats = this.mergeMessageFormats, DeploymentMode = this.versioningMode, diff --git a/src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs index e077c3cdf1..9a09d93e28 100644 --- a/src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs @@ -41,11 +41,11 @@ private GitFlowConfigurationBuilder() IsMainBranch = false }); - WithBranch(DevelopBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.DevelopBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Minor, DeploymentMode = DeploymentMode.ContinuousDelivery, - RegularExpression = DevelopBranch.RegexPattern, + RegularExpression = this.DevelopBranch.RegexPattern, SourceBranches = [this.MainBranch.Name], Label = "alpha", PreventIncrement = new PreventIncrementConfiguration @@ -60,10 +60,10 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 0 }); - WithBranch(MainBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.MainBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Patch, - RegularExpression = MainBranch.RegexPattern, + RegularExpression = this.MainBranch.RegexPattern, SourceBranches = [], Label = string.Empty, PreventIncrement = new PreventIncrementConfiguration @@ -78,11 +78,11 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 55000 }); - WithBranch(ReleaseBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.ReleaseBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Minor, DeploymentMode = DeploymentMode.ManualDeployment, - RegularExpression = ReleaseBranch.RegexPattern, + RegularExpression = this.ReleaseBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name, @@ -101,10 +101,10 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(FeatureBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.FeatureBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Inherit, - RegularExpression = FeatureBranch.RegexPattern, + RegularExpression = this.FeatureBranch.RegexPattern, DeploymentMode = DeploymentMode.ManualDeployment, SourceBranches = [ @@ -124,10 +124,10 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(PullRequestBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.PullRequestBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Inherit, - RegularExpression = PullRequestBranch.RegexPattern, + RegularExpression = this.PullRequestBranch.RegexPattern, DeploymentMode = DeploymentMode.ContinuousDelivery, SourceBranches = [ @@ -148,10 +148,10 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(HotfixBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.HotfixBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Inherit, - RegularExpression = HotfixBranch.RegexPattern, + RegularExpression = this.HotfixBranch.RegexPattern, DeploymentMode = DeploymentMode.ManualDeployment, PreventIncrement = new PreventIncrementConfiguration { @@ -168,10 +168,10 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(SupportBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.SupportBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Patch, - RegularExpression = SupportBranch.RegexPattern, + RegularExpression = this.SupportBranch.RegexPattern, SourceBranches = [this.MainBranch.Name], Label = string.Empty, PreventIncrement = new PreventIncrementConfiguration @@ -185,9 +185,9 @@ private GitFlowConfigurationBuilder() PreReleaseWeight = 55000 }); - WithBranch(UnknownBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.UnknownBranch.Name).WithConfiguration(new BranchConfiguration { - RegularExpression = UnknownBranch.RegexPattern, + RegularExpression = this.UnknownBranch.RegexPattern, DeploymentMode = DeploymentMode.ManualDeployment, Increment = IncrementStrategy.Inherit, SourceBranches = diff --git a/src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs index 95115179f1..669e8d8cc4 100644 --- a/src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs @@ -41,7 +41,7 @@ private GitHubFlowConfigurationBuilder() IsMainBranch = false }); - WithBranch(MainBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.MainBranch.Name).WithConfiguration(new BranchConfiguration { Label = string.Empty, Increment = IncrementStrategy.Patch, @@ -51,7 +51,7 @@ private GitHubFlowConfigurationBuilder() }, TrackMergeTarget = false, TrackMergeMessage = true, - RegularExpression = MainBranch.RegexPattern, + RegularExpression = this.MainBranch.RegexPattern, SourceBranches = [], TracksReleaseBranches = false, IsReleaseBranch = false, @@ -59,7 +59,7 @@ private GitHubFlowConfigurationBuilder() PreReleaseWeight = 55000 }); - WithBranch(ReleaseBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.ReleaseBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ManualDeployment, Label = "beta", @@ -72,7 +72,7 @@ private GitHubFlowConfigurationBuilder() }, TrackMergeTarget = false, TrackMergeMessage = true, - RegularExpression = ReleaseBranch.RegexPattern, + RegularExpression = this.ReleaseBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name @@ -83,7 +83,7 @@ private GitHubFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(FeatureBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.FeatureBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ManualDeployment, Label = ConfigurationConstants.BranchNamePlaceholder, @@ -92,7 +92,7 @@ private GitHubFlowConfigurationBuilder() { WhenCurrentCommitTagged = false }, - RegularExpression = FeatureBranch.RegexPattern, + RegularExpression = this.FeatureBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name, @@ -103,7 +103,7 @@ private GitHubFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(PullRequestBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.PullRequestBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ContinuousDelivery, Label = $"PullRequest{ConfigurationConstants.PullRequestNumberPlaceholder}", @@ -113,7 +113,7 @@ private GitHubFlowConfigurationBuilder() OfMergedBranch = true, WhenCurrentCommitTagged = false }, - RegularExpression = PullRequestBranch.RegexPattern, + RegularExpression = this.PullRequestBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name, @@ -124,7 +124,7 @@ private GitHubFlowConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(UnknownBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.UnknownBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ManualDeployment, Label = ConfigurationConstants.BranchNamePlaceholder, @@ -133,7 +133,7 @@ private GitHubFlowConfigurationBuilder() { WhenCurrentCommitTagged = false }, - RegularExpression = UnknownBranch.RegexPattern, + RegularExpression = this.UnknownBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name, diff --git a/src/GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs index 204a83f10e..b6cdf38578 100644 --- a/src/GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/IgnoreConfigurationBuilder.cs @@ -34,7 +34,7 @@ public IgnoreConfigurationBuilder WithShas(HashSet<string> value) public IIgnoreConfiguration Build() => new IgnoreConfiguration { - Before = before, - Shas = shas + Before = this.before, + Shas = this.shas }; } diff --git a/src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs b/src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs index 8f052e7851..295fc37c1b 100644 --- a/src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs +++ b/src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs @@ -44,7 +44,7 @@ private TrunkBasedConfigurationBuilder() IsMainBranch = false }); - WithBranch(MainBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.MainBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ContinuousDeployment, Label = string.Empty, @@ -55,7 +55,7 @@ private TrunkBasedConfigurationBuilder() }, TrackMergeTarget = false, TrackMergeMessage = true, - RegularExpression = MainBranch.RegexPattern, + RegularExpression = this.MainBranch.RegexPattern, SourceBranches = [], TracksReleaseBranches = false, IsReleaseBranch = false, @@ -63,7 +63,7 @@ private TrunkBasedConfigurationBuilder() PreReleaseWeight = 55000 }); - WithBranch(FeatureBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.FeatureBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ContinuousDelivery, Label = ConfigurationConstants.BranchNamePlaceholder, @@ -72,7 +72,7 @@ private TrunkBasedConfigurationBuilder() { WhenCurrentCommitTagged = false }, - RegularExpression = FeatureBranch.RegexPattern, + RegularExpression = this.FeatureBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name @@ -82,7 +82,7 @@ private TrunkBasedConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(HotfixBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.HotfixBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ContinuousDelivery, Label = ConfigurationConstants.BranchNamePlaceholder, @@ -91,7 +91,7 @@ private TrunkBasedConfigurationBuilder() { WhenCurrentCommitTagged = false }, - RegularExpression = HotfixBranch.RegexPattern, + RegularExpression = this.HotfixBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name @@ -101,7 +101,7 @@ private TrunkBasedConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(PullRequestBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.PullRequestBranch.Name).WithConfiguration(new BranchConfiguration { DeploymentMode = DeploymentMode.ContinuousDelivery, Label = $"PullRequest{ConfigurationConstants.PullRequestNumberPlaceholder}", @@ -111,7 +111,7 @@ private TrunkBasedConfigurationBuilder() OfMergedBranch = true, WhenCurrentCommitTagged = false }, - RegularExpression = PullRequestBranch.RegexPattern, + RegularExpression = this.PullRequestBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name, @@ -122,14 +122,14 @@ private TrunkBasedConfigurationBuilder() PreReleaseWeight = 30000 }); - WithBranch(UnknownBranch.Name).WithConfiguration(new BranchConfiguration + WithBranch(this.UnknownBranch.Name).WithConfiguration(new BranchConfiguration { Increment = IncrementStrategy.Patch, PreventIncrement = new PreventIncrementConfiguration { WhenCurrentCommitTagged = false }, - RegularExpression = UnknownBranch.RegexPattern, + RegularExpression = this.UnknownBranch.RegexPattern, SourceBranches = [ this.MainBranch.Name diff --git a/src/GitVersion.Configuration/ConfigurationFileLocator.cs b/src/GitVersion.Configuration/ConfigurationFileLocator.cs index 9d51bfb884..d63d1d33d6 100644 --- a/src/GitVersion.Configuration/ConfigurationFileLocator.cs +++ b/src/GitVersion.Configuration/ConfigurationFileLocator.cs @@ -28,11 +28,11 @@ internal class ConfigurationFileLocator( private readonly ILog log = log.NotNull(); private readonly IOptions<GitVersionOptions> options = options.NotNull(); - private string? ConfigurationFile => options.Value.ConfigurationInfo.ConfigurationFile; + private string? ConfigurationFile => this.options.Value.ConfigurationInfo.ConfigurationFile; public void Verify(string? workingDirectory, string? projectRootDirectory) { - if (FileSystemHelper.Path.IsPathRooted(this.ConfigurationFile)) return; + if (FileSystemHelper.Path.IsPathRooted(ConfigurationFile)) return; if (FileSystemHelper.Path.Equal(workingDirectory, projectRootDirectory)) return; WarnAboutAmbiguousConfigFileSelection(workingDirectory, projectRootDirectory); } @@ -46,12 +46,12 @@ public void Verify(string? workingDirectory, string? projectRootDirectory) return customConfigurationFile; } - if (string.IsNullOrWhiteSpace(directoryPath) || !fileSystem.Directory.Exists(directoryPath)) + if (string.IsNullOrWhiteSpace(directoryPath) || !this.fileSystem.Directory.Exists(directoryPath)) { return null; } - var files = fileSystem.Directory.GetFiles(directoryPath); + var files = this.fileSystem.Directory.GetFiles(directoryPath); foreach (var fileName in this.SupportedConfigFileNames) { this.log.Debug($"Trying to find configuration file {fileName} at '{directoryPath}'"); @@ -66,11 +66,11 @@ public void Verify(string? workingDirectory, string? projectRootDirectory) private string? GetCustomConfigurationFilePathIfEligable(string? directoryPath) { - if (string.IsNullOrWhiteSpace(this.ConfigurationFile)) return null; - var configurationFilePath = this.ConfigurationFile; + if (string.IsNullOrWhiteSpace(ConfigurationFile)) return null; + var configurationFilePath = ConfigurationFile; if (!string.IsNullOrWhiteSpace(directoryPath)) { - configurationFilePath = FileSystemHelper.Path.Combine(directoryPath, this.ConfigurationFile); + configurationFilePath = FileSystemHelper.Path.Combine(directoryPath, ConfigurationFile); } return this.fileSystem.File.Exists(configurationFilePath) ? configurationFilePath : null; @@ -89,10 +89,10 @@ private void WarnAboutAmbiguousConfigFileSelection(string? workingDirectory, str throw new WarningException($"Ambiguous configuration file selection from '{workingConfigFile}' and '{projectRootConfigFile}'"); } - if (hasConfigInProjectRootDirectory || hasConfigInWorkingDirectory || this.SupportedConfigFileNames.Any(entry => entry.Equals(this.ConfigurationFile, StringComparison.OrdinalIgnoreCase))) return; + if (hasConfigInProjectRootDirectory || hasConfigInWorkingDirectory || this.SupportedConfigFileNames.Any(entry => entry.Equals(ConfigurationFile, StringComparison.OrdinalIgnoreCase))) return; - workingConfigFile = FileSystemHelper.Path.Combine(workingDirectory, this.ConfigurationFile); - projectRootConfigFile = FileSystemHelper.Path.Combine(projectRootDirectory, this.ConfigurationFile); + workingConfigFile = FileSystemHelper.Path.Combine(workingDirectory, ConfigurationFile); + projectRootConfigFile = FileSystemHelper.Path.Combine(projectRootDirectory, ConfigurationFile); throw new WarningException($"The configuration file was not found at '{workingConfigFile}' or '{projectRootConfigFile}'"); } } diff --git a/src/GitVersion.Configuration/ConfigurationProvider.cs b/src/GitVersion.Configuration/ConfigurationProvider.cs index d0ce12c659..6250f0da77 100644 --- a/src/GitVersion.Configuration/ConfigurationProvider.cs +++ b/src/GitVersion.Configuration/ConfigurationProvider.cs @@ -87,8 +87,8 @@ private IGitVersionConfiguration ProvideConfiguration(string? configFile, } this.log.Info($"Using configuration file '{configFilePath}'"); - var content = fileSystem.File.ReadAllText(configFilePath); - return configurationSerializer.Deserialize<Dictionary<object, object?>>(content); + var content = this.fileSystem.File.ReadAllText(configFilePath); + return this.configurationSerializer.Deserialize<Dictionary<object, object?>>(content); } private static string? GetWorkflow(IReadOnlyDictionary<object, object?>? overrideConfiguration, IReadOnlyDictionary<object, object?>? overrideConfigurationFromFile) diff --git a/src/GitVersion.Configuration/GitVersionConfiguration.cs b/src/GitVersion.Configuration/GitVersionConfiguration.cs index 29c9187fcd..075584674a 100644 --- a/src/GitVersion.Configuration/GitVersionConfiguration.cs +++ b/src/GitVersion.Configuration/GitVersionConfiguration.cs @@ -50,9 +50,9 @@ internal sealed record GitVersionConfiguration : BranchConfiguration, IGitVersio [JsonPropertyDescription("Allows you to bump the next version explicitly. Useful for bumping main or a feature branch with breaking changes")] public string? NextVersion { - get => nextVersion; + get => this.nextVersion; set => - nextVersion = int.TryParse(value, NumberStyles.Any, NumberFormatInfo.InvariantInfo, out var major) + this.nextVersion = int.TryParse(value, NumberStyles.Any, NumberFormatInfo.InvariantInfo, out var major) ? $"{major}.0" : value; } diff --git a/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs b/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs index b56a98f086..2c5f1fd616 100644 --- a/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs +++ b/src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs @@ -29,7 +29,7 @@ public void FindsGitDirectory() { var exception = Assert.Catch(() => { - var options = Options.Create(new GitVersionOptions { WorkingDirectory = workDirectory, Settings = { NoFetch = true } }); + var options = Options.Create(new GitVersionOptions { WorkingDirectory = this.workDirectory, Settings = { NoFetch = true } }); var sp = ConfigureServices(services => services.AddSingleton(options)); diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs index 5a7c1c757e..b5eaf14dc0 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhen.cs @@ -24,16 +24,16 @@ public void OneTimeSetUp() // |/ // * 58 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("develop"); - fixture.MakeACommit("B"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("develop"); + this.fixture.MakeACommit("B"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-alpha.1+2")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, ExpectedResult = "0.0.1-alpha.1+2")] @@ -61,7 +61,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("develop", b => b.WithIncrement(increment)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-2+2")] @@ -90,7 +90,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("develop", b => b.WithIncrement(increment)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs index 3c7149e275..db57dd4558 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitFlow+GivenADevelopBranchWithOneCommitMergedToMainWhenMergedCommitTaggedAsStable.cs @@ -24,18 +24,18 @@ public void OneTimeSetUp() // |/ // * 58 minutes ago - fixture = new EmptyRepositoryFixture(); - - fixture.MakeACommit("A"); - fixture.BranchTo("develop"); - fixture.MakeACommit("B"); - fixture.MergeTo("main"); - fixture.ApplyTag("1.0.0"); - fixture.Checkout("develop"); + this.fixture = new EmptyRepositoryFixture(); + + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("develop"); + this.fixture.MakeACommit("B"); + this.fixture.MergeTo("main"); + this.fixture.ApplyTag("1.0.0"); + this.fixture.Checkout("develop"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "1.0.0-alpha.1+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, ExpectedResult = "1.0.1-alpha.1+0")] @@ -63,7 +63,7 @@ public string GetVersionWithTrackMergeTargetOnDevelop(IncrementStrategy incremen .WithBranch("develop", b => b.WithIncrement(increment).WithTrackMergeTarget(true)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-alpha.1+1")] @@ -92,7 +92,7 @@ public string GetVersionWithNoTrackMergeTargetOnDevelop(IncrementStrategy increm .WithBranch("develop", b => b.WithIncrement(increment).WithTrackMergeTarget(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs index 2e29bbd647..aa8cd60725 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainMergedBackToMainWhen.cs @@ -31,20 +31,20 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture = new EmptyRepositoryFixture(); - - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.Checkout("main"); - fixture.MakeACommit("C"); - fixture.Checkout("main"); - fixture.MergeTo("feature/foo"); - fixture.MergeTo("main", removeBranchAfterMerging: true); + this.fixture = new EmptyRepositoryFixture(); + + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.Checkout("main"); + this.fixture.MakeACommit("C"); + this.fixture.Checkout("main"); + this.fixture.MergeTo("feature/foo"); + this.fixture.MergeTo("main", removeBranchAfterMerging: true); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.1+3")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-foo.1+3")] @@ -136,7 +136,7 @@ public string GetVersion(IncrementStrategy increment, IncrementStrategy incremen .WithBranch("feature", b => b.WithIncrement(incrementOnFeature)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.1+3")] @@ -230,7 +230,7 @@ public string GetVersionWithPreventIncrementOfMergedBranchVersionFalseOnMain( .WithBranch("feature", b => b.WithIncrement(incrementOnFeature)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs index f9a340db58..a967b3dc53 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithAMergeCommitFromMainWhen.cs @@ -27,18 +27,18 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture = new EmptyRepositoryFixture(); - - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.Checkout("main"); - fixture.MakeACommit("C"); - fixture.MergeTo("feature/foo"); + this.fixture = new EmptyRepositoryFixture(); + + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.Checkout("main"); + this.fixture.MakeACommit("C"); + this.fixture.MergeTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-foo.1+2")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, ExpectedResult = "0.0.1-foo.1+2")] @@ -70,7 +70,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-foo.1+2")] @@ -103,7 +103,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-foo.3+2")] @@ -136,7 +136,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, ExpectedResult = "0.0.0-foo.1+2")] @@ -169,7 +169,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs index 13edf511e0..927a68eca9 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhen.cs @@ -23,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -143,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -256,7 +256,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -369,7 +369,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -482,7 +482,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs index a5bf16a28d..fe63aab9ba 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMajor.cs @@ -23,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: major"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A +semver: major"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-2+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "1.0.1-1+1")] @@ -143,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -258,7 +258,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -373,7 +373,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-2+1")] @@ -487,7 +487,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -602,7 +602,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -717,7 +717,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-foo.2+1")] @@ -830,7 +830,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -945,7 +945,7 @@ public string GetVersionWithLabelFooAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -1060,7 +1060,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-bar.2+1")] @@ -1173,7 +1173,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1288,7 +1288,7 @@ public string GetVersionWithLabelBarAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1403,7 +1403,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs index 5cc5cdc70c..cf1369f461 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessageMinor.cs @@ -23,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: minor"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A +semver: minor"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-2+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.1.1-1+1")] @@ -143,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -258,7 +258,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -373,7 +373,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-2+1")] @@ -487,7 +487,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -602,7 +602,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -717,7 +717,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-foo.2+1")] @@ -830,7 +830,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -945,7 +945,7 @@ public string GetVersionWithLabelFooAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -1060,7 +1060,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-bar.2+1")] @@ -1173,7 +1173,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1288,7 +1288,7 @@ public string GetVersionWithLabelBarAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1403,7 +1403,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs index 9fdcd0bbdb..aaa242751b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitAHasBumpMessagePatch.cs @@ -23,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: patch"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A +semver: patch"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-2+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+1")] @@ -143,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -258,7 +258,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -373,7 +373,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-2+1")] @@ -486,7 +486,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -601,7 +601,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -716,7 +716,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-foo.2+1")] @@ -829,7 +829,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -944,7 +944,7 @@ public string GetVersionWithLabelFooAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -1059,7 +1059,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-bar.2+1")] @@ -1172,7 +1172,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1287,7 +1287,7 @@ public string GetVersionWithLabelBarAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1402,7 +1402,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs index 2fcdceb434..34020681d8 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreRelease.cs @@ -23,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) (tag 0.0.0-4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-4"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-4"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -144,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+1")] @@ -257,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -370,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -483,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs index 17ccb92679..0e38cba6c5 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseBar.cs @@ -23,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) (tag 0.0.0-bar) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-bar"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-bar"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-bar+1")] @@ -144,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -257,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -370,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+1")] @@ -483,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs index 55ca3c42a8..3581922c2b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsPreReleaseFoo.cs @@ -23,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) (tag 0.0.0-foo.4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-foo.4"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-foo.4"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-foo.1+1")] @@ -144,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -257,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+1")] @@ -370,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -483,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs index f1cb41ba1c..a07fdd6ac6 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitATaggedAsStable.cs @@ -23,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) (tag 0.0.0) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -145,7 +145,7 @@ public string GetVersionWithNoLabelOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -259,7 +259,7 @@ public string GetVersionWithEmptyLabelOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -373,7 +373,7 @@ public string GetVersionWithLabelFooOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -487,7 +487,7 @@ public string GetVersionWithLabelBarOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs index c94a456932..7b96180482 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMajor.cs @@ -23,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B +semver: major"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B +semver: major"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-1+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "1.0.0-1+1")] @@ -143,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -259,7 +259,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -375,7 +375,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-1+1")] @@ -488,7 +488,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -604,7 +604,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -720,7 +720,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-foo.1+1")] @@ -833,7 +833,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -949,7 +949,7 @@ public string GetVersionWithLabelFooAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -1065,7 +1065,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-bar.1+1")] @@ -1178,7 +1178,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1294,7 +1294,7 @@ public string GetVersionWithLabelBarAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1410,7 +1410,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs index 504210627c..5748b5a6ca 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessageMinor.cs @@ -23,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B +semver: minor"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B +semver: minor"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-1+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.1.0-1+1")] @@ -143,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -259,7 +259,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -375,7 +375,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-1+1")] @@ -488,7 +488,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -604,7 +604,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -720,7 +720,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-foo.1+1")] @@ -833,7 +833,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -949,7 +949,7 @@ public string GetVersionWithLabelFooAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -1065,7 +1065,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-bar.1+1")] @@ -1178,7 +1178,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1294,7 +1294,7 @@ public string GetVersionWithLabelBarAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1410,7 +1410,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs index 9d63f43c79..92d0406970 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBHasBumpMessagePatch.cs @@ -23,15 +23,15 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B +semver: patch"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B +semver: patch"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-1+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -143,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -259,7 +259,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -375,7 +375,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-1+1")] @@ -488,7 +488,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -604,7 +604,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -720,7 +720,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-foo.1+1")] @@ -833,7 +833,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -949,7 +949,7 @@ public string GetVersionWithLabelFooAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+1")] @@ -1065,7 +1065,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-bar.1+1")] @@ -1178,7 +1178,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1294,7 +1294,7 @@ public string GetVersionWithLabelBarAndDisabledMessageIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+1")] @@ -1410,7 +1410,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs index 630edff397..97f042110d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreRelease.cs @@ -23,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) (tag 0.0.0-4) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0-4"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0-4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-4")] @@ -144,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] @@ -257,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] @@ -370,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] @@ -483,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs index 11cb8cdd47..771d58b8db 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseBar.cs @@ -23,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) (tag 0.0.0-bar) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0-bar"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0-bar"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-bar")] @@ -144,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] @@ -257,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] @@ -370,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] @@ -483,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs index 9b6d4bc87e..e2b41f74e4 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsPreReleaseFoo.cs @@ -23,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) (tag 0.0.0-foo.4) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0-foo.4"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0-foo.4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-foo.4")] @@ -144,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] @@ -257,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] @@ -370,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] @@ -483,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs index aef1763976..6c09a2f0d1 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitBranchedFromMainWhenCommitBTaggedAsStable.cs @@ -23,16 +23,16 @@ public void OneTimeSetUp() // B 47 minutes ago (HEAD -> feature/foo) (tag 0.0.0) // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0")] @@ -145,7 +145,7 @@ public string GetVersionWithNoLabelOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -239,7 +239,7 @@ public string GetVersionWithNoLabelOnMainAndPreventIncrementWhenCurrentCommitTag .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] @@ -353,7 +353,7 @@ public string GetVersionWithEmptyLabelOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -447,7 +447,7 @@ public string GetVersionWithEmptyLabelOnMainAndPreventIncrementWhenCurrentCommit .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] @@ -561,7 +561,7 @@ public string GetVersionWithLabelFooOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -655,7 +655,7 @@ public string GetVersionWithLabelFooOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] @@ -769,7 +769,7 @@ public string GetVersionWithLabelBarOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -863,7 +863,7 @@ public string GetVersionWithLabelBarOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs index 2212b1f0a8..765077f7cf 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhen.cs @@ -26,16 +26,16 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+2")] @@ -148,7 +148,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -263,7 +263,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -377,7 +377,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -492,7 +492,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -606,7 +606,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -721,7 +721,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+2")] @@ -835,7 +835,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+2")] @@ -950,7 +950,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs index c5c4878dc4..45de3d270c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreRelease.cs @@ -20,7 +20,7 @@ public class GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreR [OneTimeSetUp] public void OneTimeSetUp() { - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); // * 54 minutes ago (HEAD -> main) // |\ @@ -28,15 +28,15 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0-4"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0-4"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-5+1")] @@ -148,7 +148,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+1")] @@ -262,7 +262,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+1")] @@ -375,7 +375,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+1")] @@ -490,7 +490,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -603,7 +603,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -717,7 +717,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+2")] @@ -830,7 +830,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+2")] @@ -944,7 +944,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs index 27e83f4489..19b6a2d0c6 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseBar.cs @@ -20,7 +20,7 @@ public class GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreR [OneTimeSetUp] public void OneTimeSetUp() { - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); // * 55 minutes ago (HEAD -> main) // |\ @@ -28,15 +28,15 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0-bar"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0-bar"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-bar+1")] @@ -148,7 +148,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+1")] @@ -262,7 +262,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -375,7 +375,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -489,7 +489,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -602,7 +602,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -716,7 +716,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+1")] @@ -829,7 +829,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+1")] @@ -943,7 +943,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs index 5101c0f10b..fe9baf0599 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreReleaseFoo.cs @@ -20,7 +20,7 @@ public class GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsPreR [OneTimeSetUp] public void OneTimeSetUp() { - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); // * 55 minutes ago (HEAD -> main) // |\ @@ -28,15 +28,15 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0-foo.4"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0-foo.4"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-foo.5+1")] @@ -148,7 +148,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+1")] @@ -262,7 +262,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -375,7 +375,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -489,7 +489,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+1")] @@ -602,7 +602,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+1")] @@ -716,7 +716,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+2")] @@ -829,7 +829,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+2")] @@ -943,7 +943,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs index ecffe59cda..a27137dbd9 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStable.cs @@ -20,7 +20,7 @@ public class GivenAFeatureBranchWithOneCommitMergedToMainWhenCommitBTaggedAsStab [OneTimeSetUp] public void OneTimeSetUp() { - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); // * 55 minutes ago (HEAD -> main) // |\ @@ -28,15 +28,15 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.0.0"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.0.0"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -148,7 +148,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -262,7 +262,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -375,7 +375,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -489,7 +489,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.1+1")] @@ -602,7 +602,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.1+1")] @@ -716,7 +716,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.1+1")] @@ -829,7 +829,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.1+1")] @@ -943,7 +943,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs index 52a0a25483..bebea6721b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitMergedToMainWithOneCommitBranchedToFeatureWhen.cs @@ -27,20 +27,20 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture = new EmptyRepositoryFixture(); - - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.Checkout("main"); - fixture.MakeACommit("C"); - fixture.Checkout("feature/foo"); - fixture.MergeTo("main", removeBranchAfterMerging: true); - fixture.BranchTo("feature/foo"); + this.fixture = new EmptyRepositoryFixture(); + + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.Checkout("main"); + this.fixture.MakeACommit("C"); + this.fixture.Checkout("feature/foo"); + this.fixture.MergeTo("main", removeBranchAfterMerging: true); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+0")] @@ -153,7 +153,7 @@ public string GetVersionWithLabelNullOnMain(IncrementStrategy incrementOnMain, I .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4+0")] @@ -268,7 +268,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4+0")] @@ -382,7 +382,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4+0")] @@ -497,7 +497,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4+0")] @@ -611,7 +611,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4+0")] @@ -726,7 +726,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.4+0")] @@ -840,7 +840,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.4+0")] @@ -955,7 +955,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs index 2115f91500..605c9a5bb7 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhen.cs @@ -19,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); + this.fixture.MakeACommit("A"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -52,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs index fd1959e765..65fad81307 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs @@ -19,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A +semver: major"); + this.fixture.MakeACommit("A +semver: major"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "1.0.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "1.0.0-1+1")] @@ -52,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -81,7 +81,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -110,7 +110,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs index 4db7d97d3a..93aa14d723 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs @@ -19,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A +semver: minor"); + this.fixture.MakeACommit("A +semver: minor"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.1.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.1.0-1+1")] @@ -52,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -81,7 +81,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -110,7 +110,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs index 021df98d57..3099211ba2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs @@ -19,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A +semver: patch"); + this.fixture.MakeACommit("A +semver: patch"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.1-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -52,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -81,7 +81,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -110,7 +110,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs index fc4d75f4b5..765b92d30c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs @@ -21,14 +21,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) (tag 0.0.0-4) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-4"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-4")] @@ -55,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+0")] @@ -83,7 +83,7 @@ public string GetVersionWithPreventIncrementWhenCurrentCommitTaggedFalse(Increme .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs index 5f22209f71..2f155fbdb2 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs @@ -21,14 +21,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) (tag 0.0.0-bar) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-bar"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-bar"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-bar")] @@ -55,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+0")] @@ -83,7 +83,7 @@ public string GetVersionWithPreventIncrementWhenCurrentCommitTaggedFalse(Increme .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs index 742cb19615..f657e55cfd 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs @@ -21,14 +21,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) (tag 0.0.0-foo.4) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-foo.4"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-foo.4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-foo.4")] @@ -55,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+0")] @@ -83,7 +83,7 @@ public string GetVersionWithPreventIncrementWhenCurrentCommitTaggedFalse(Increme .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs index 978f5f06f5..81cbe0c9f1 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithOneCommitWhenCommitTaggedAsStable.cs @@ -21,14 +21,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> feature/foo) (tag 0.0.0) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0")] @@ -55,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -83,7 +83,7 @@ public string GetVersionWithPreventIncrementWhenCurrentCommitTaggedFalse(Increme .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs index 9d92f9e2d2..558eff193a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsBranchedFromMainWhen.cs @@ -25,17 +25,17 @@ public void OneTimeSetUp() // B 47 minutes ago // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.MakeACommit("C"); - fixture.MakeACommit("D"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.MakeACommit("C"); + this.fixture.MakeACommit("D"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+3")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+3")] @@ -127,7 +127,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+3")] @@ -220,7 +220,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+3")] @@ -313,7 +313,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs index fe66bd9de7..dec395e15e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsMergedToMainWhen.cs @@ -28,18 +28,18 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture = new EmptyRepositoryFixture(); - - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.MakeACommit("C"); - fixture.MakeACommit("D"); - fixture.MergeTo("main"); + this.fixture = new EmptyRepositoryFixture(); + + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.MakeACommit("C"); + this.fixture.MakeACommit("D"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+4")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+4")] @@ -152,7 +152,7 @@ public string GetVersionWithLabelNullOnMain(IncrementStrategy incrementOnMain, I .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+4")] @@ -267,7 +267,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+4")] @@ -381,7 +381,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+4")] @@ -496,7 +496,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+4")] @@ -610,7 +610,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+4")] @@ -725,7 +725,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+4")] @@ -839,7 +839,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+4")] @@ -954,7 +954,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs index 45498ae21a..20c68e6c94 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithThreeCommitsWhen.cs @@ -23,15 +23,15 @@ public void OneTimeSetUp() // B 58 minutes ago // A 59 minutes ago - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.MakeACommit("C"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.MakeACommit("C"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+3")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+3")] @@ -58,7 +58,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs index 158744435b..583414c706 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsBranchedFromMainWhen.cs @@ -24,16 +24,16 @@ public void OneTimeSetUp() // B 47 minutes ago // A 51 minutes ago (main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.MakeACommit("C"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.MakeACommit("C"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+2")] @@ -125,7 +125,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+2")] @@ -218,7 +218,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+2")] @@ -311,7 +311,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs index 7a88c1a8b6..769c575a5a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsMergedToMainWhen.cs @@ -27,17 +27,17 @@ public void OneTimeSetUp() // |/ // A 58 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); - fixture.MakeACommit("B"); - fixture.MakeACommit("C"); - fixture.MergeTo("main"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("B"); + this.fixture.MakeACommit("C"); + this.fixture.MergeTo("main"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+3")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+3")] @@ -150,7 +150,7 @@ public string GetVersionWithLabelNullOnMain(IncrementStrategy incrementOnMain, I .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+3")] @@ -265,7 +265,7 @@ public string GetVersionWithLabelNullAndPreventIncrementOfMergedBranchVersionFal .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+3")] @@ -379,7 +379,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+3")] @@ -494,7 +494,7 @@ public string GetVersionWithEmptyLabelAndPreventIncrementOfMergedBranchVersionFa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+3")] @@ -608,7 +608,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+3")] @@ -723,7 +723,7 @@ public string GetVersionWithLabelFooAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+3")] @@ -837,7 +837,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+3")] @@ -952,7 +952,7 @@ public string GetVersionWithLabelBarAndPreventIncrementOfMergedBranchVersionFals .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs index 013d076307..4f756fe8b7 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs @@ -22,15 +22,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> feature/foo) // A 59 minutes ago (tag 0.0.3-4) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-4"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-4"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-5+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.3-5+1")] @@ -57,7 +57,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs index e700542b93..3896721234 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -22,15 +22,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> feature/foo) // A 59 minutes ago (tag 0.0.3-bar) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-bar"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-bar"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.3-bar+1")] @@ -57,7 +57,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs index 72faaba14e..4881852676 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAFeatureBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -22,15 +22,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> feature/foo) // A 59 minutes ago (tag 0.0.3-foo.4) - fixture = new EmptyRepositoryFixture("feature/foo"); + this.fixture = new EmptyRepositoryFixture("feature/foo"); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-foo.4"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-foo.4"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.5+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.3-foo.5+1")] @@ -57,7 +57,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs index c68632ddf2..6a9f41728f 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhen.cs @@ -22,14 +22,14 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+0")] @@ -141,7 +141,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -255,7 +255,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -368,7 +368,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -481,7 +481,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs index 259abe3886..0a8260842a 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMajor.cs @@ -22,14 +22,14 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: major"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A +semver: major"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-2+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "1.0.1-1+0")] @@ -141,7 +141,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -256,7 +256,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -371,7 +371,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-2+0")] @@ -485,7 +485,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -600,7 +600,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -715,7 +715,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-foo.2+0")] @@ -828,7 +828,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -943,7 +943,7 @@ public string GetVersionWithLabelFooAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -1058,7 +1058,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-bar.2+0")] @@ -1171,7 +1171,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -1286,7 +1286,7 @@ public string GetVersionWithLabelBarAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -1401,7 +1401,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs index 108269101e..96417a0028 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessageMinor.cs @@ -22,14 +22,14 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: minor"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A +semver: minor"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-2+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.1.1-1+0")] @@ -141,7 +141,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -256,7 +256,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -371,7 +371,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-2+0")] @@ -485,7 +485,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -600,7 +600,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -715,7 +715,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-foo.2+0")] @@ -828,7 +828,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -943,7 +943,7 @@ public string GetVersionWithLabelFooAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -1058,7 +1058,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-bar.2+0")] @@ -1171,7 +1171,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -1286,7 +1286,7 @@ public string GetVersionWithLabelBarAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -1401,7 +1401,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs index 5ede897eb7..d7afc7840b 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitHasBumpMessagePatch.cs @@ -22,14 +22,14 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: patch"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A +semver: patch"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-2+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+0")] @@ -141,7 +141,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -256,7 +256,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -371,7 +371,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-2+0")] @@ -484,7 +484,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -599,7 +599,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -714,7 +714,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-foo.2+0")] @@ -827,7 +827,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -942,7 +942,7 @@ public string GetVersionWithLabelFooAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -1057,7 +1057,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-bar.2+0")] @@ -1170,7 +1170,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -1285,7 +1285,7 @@ public string GetVersionWithLabelBarAndDisabledMergeMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -1400,7 +1400,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs index 78a45c023e..12ee049cd0 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreRelease.cs @@ -22,15 +22,15 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) (tag 0.0.0-4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-4"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-4"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-4")] @@ -142,7 +142,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+0")] @@ -256,7 +256,7 @@ public string GetVersionWithNoLabelOnMainAndPreventIncrementWhenCurrentCommitTag .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] @@ -369,7 +369,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-5+0")] @@ -483,7 +483,7 @@ public string GetVersionWithEmptyLabelOnMainAndPreventIncrementWhenCurrentCommit .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] @@ -596,7 +596,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -710,7 +710,7 @@ public string GetVersionWithLabelFooOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] @@ -823,7 +823,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -937,7 +937,7 @@ public string GetVersionWithLabelBarOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs index 5c6dbd215d..f0221c5b10 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseBar.cs @@ -22,15 +22,15 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) (tag 0.0.0-bar) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-bar"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-bar"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-bar")] @@ -142,7 +142,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+0")] @@ -256,7 +256,7 @@ public string GetVersionWithNoLabelOnMainAndPreventIncrementWhenCurrentCommitTag .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] @@ -369,7 +369,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -483,7 +483,7 @@ public string GetVersionWithEmptyLabelOnMainAndPreventIncrementWhenCurrentCommit .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] @@ -596,7 +596,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.2+0")] @@ -710,7 +710,7 @@ public string GetVersionWithLabelFooOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] @@ -823,7 +823,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar+0")] @@ -937,7 +937,7 @@ public string GetVersionWithLabelBarOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs index b388648a52..94db35d2b1 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsPreReleaseFoo.cs @@ -22,15 +22,15 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) (tag 0.0.0-foo.4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-foo.4"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-foo.4"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-foo.4")] @@ -142,7 +142,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+0")] @@ -256,7 +256,7 @@ public string GetVersionWithNoLabelOnMainAndPreventIncrementWhenCurrentCommitTag .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] @@ -369,7 +369,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+0")] @@ -483,7 +483,7 @@ public string GetVersionWithEmptyLabelOnMainAndPreventIncrementWhenCurrentCommit .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] @@ -596,7 +596,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.5+0")] @@ -710,7 +710,7 @@ public string GetVersionWithLabelFooOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] @@ -823,7 +823,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.2+0")] @@ -937,7 +937,7 @@ public string GetVersionWithLabelBarOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs index 3be50ac378..648c010763 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitBranchedToFeatureWhenCommitTaggedAsStable.cs @@ -22,15 +22,15 @@ public void OneTimeSetUp() { // A 58 minutes ago (HEAD -> feature/foo, main) (tag 0.0.0) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.0")] @@ -142,7 +142,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -256,7 +256,7 @@ public string GetVersionWithNoLabelOnMainAndPreventIncrementWhenCurrentCommitTag .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] @@ -369,7 +369,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+0")] @@ -483,7 +483,7 @@ public string GetVersionWithEmptyLabelOnMainAndPreventIncrementWhenCurrentCommit .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] @@ -596,7 +596,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.1+0")] @@ -710,7 +710,7 @@ public string GetVersionWithLabelFooOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0")] @@ -823,7 +823,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.1+0")] @@ -937,7 +937,7 @@ public string GetVersionWithLabelBarOnMainAndPreventIncrementWhenCurrentCommitTa .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label).WithPreventIncrementWhenCurrentCommitTagged(false)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs index 7795ef2a9e..1db4a02fca 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhen.cs @@ -19,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); + this.fixture.MakeACommit("A"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -52,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs index 48f1a0526e..f7fe644668 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMajor.cs @@ -19,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: major"); + this.fixture.MakeACommit("A +semver: major"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "1.0.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "1.0.0-1+1")] @@ -52,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -81,7 +81,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -110,7 +110,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs index bf132fba57..1f7a84197e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessageMinor.cs @@ -19,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: minor"); + this.fixture.MakeACommit("A +semver: minor"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.1.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.1.0-1+1")] @@ -52,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -81,7 +81,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -110,7 +110,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs index b5b1d03947..095d7fca39 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitHasBumpMessagePatch.cs @@ -19,13 +19,13 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: patch"); + this.fixture.MakeACommit("A +semver: patch"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.1-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+1")] @@ -52,7 +52,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -81,7 +81,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-1+1")] @@ -110,7 +110,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs index 4d33d326c5..9ef8d7c561 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreRelease.cs @@ -19,14 +19,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) (tag 0.0.0-4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-4"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-4")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-4")] @@ -53,7 +53,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs index 867b82c5b4..8c50e81998 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseBar.cs @@ -19,14 +19,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) (tag 0.0.0-bar) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-bar"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-bar"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-bar")] @@ -53,7 +53,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs index 8a03fa20ab..539742c239 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsPreReleaseFoo.cs @@ -19,14 +19,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) (tag 0.0.0-foo.4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0-foo.4"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0-foo.4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.4")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0-foo.4")] @@ -53,7 +53,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs index a053643119..d9dc4fe9bc 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithOneCommitWhenCommitTaggedAsStable.cs @@ -19,14 +19,14 @@ public void OneTimeSetUp() { // A 59 minutes ago (HEAD -> main) (tag 0.0.0) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.0"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.0"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.0")] @@ -53,7 +53,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs index 3f31702ae7..50c8a16464 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithThreeCommitsWhen.cs @@ -21,15 +21,15 @@ public void OneTimeSetUp() // B 58 minutes ago // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.MakeACommit("C"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.MakeACommit("C"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.3-1+1")] @@ -56,7 +56,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs index 71b28a2c18..e32ee19e4e 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhen.cs @@ -23,15 +23,15 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.1-1+0")] @@ -143,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -256,7 +256,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -369,7 +369,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -482,7 +482,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs index 570eab8b35..f43c099d58 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMajor.cs @@ -23,15 +23,15 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: major"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A +semver: major"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-3+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "1.0.1-1+0")] @@ -143,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -257,7 +257,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain(Incremen ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -371,7 +371,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain(Increme ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-3+0")] @@ -484,7 +484,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -600,7 +600,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -716,7 +716,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-foo.3+0")] @@ -829,7 +829,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -944,7 +944,7 @@ public string GetVersionWithLabelFooAndDisabledMessageIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -1060,7 +1060,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementModeOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "1.0.0-bar.3+0")] @@ -1173,7 +1173,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -1288,7 +1288,7 @@ public string GetVersionWithLabelBarAndDisabledMessageIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -1403,7 +1403,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs index 99d4f12eff..58ebfe5819 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessageMinor.cs @@ -23,15 +23,15 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: minor"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A +semver: minor"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-3+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.1.1-1+0")] @@ -143,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -257,7 +257,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain(Incremen ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -371,7 +371,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain(Increme ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-3+0")] @@ -484,7 +484,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -600,7 +600,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -716,7 +716,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-foo.3+0")] @@ -829,7 +829,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -944,7 +944,7 @@ public string GetVersionWithLabelFooAndDisabledMessageIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -1060,7 +1060,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementModeOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.1.0-bar.3+0")] @@ -1173,7 +1173,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -1288,7 +1288,7 @@ public string GetVersionWithLabelBarAndDisabledMessageIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -1403,7 +1403,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs index 3f51f3e681..b3a89c7d14 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitHasBumpMessagePatch.cs @@ -23,15 +23,15 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: patch"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A +semver: patch"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-3+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+0")] @@ -143,7 +143,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -257,7 +257,7 @@ public string GetVersionWithNoLabelAndDisabledMessageIncrementingOnMain(Incremen ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -371,7 +371,7 @@ public string GetVersionWithNoLabelAndMergeMessageOnlyIncrementingOnMain(Increme ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-3+0")] @@ -484,7 +484,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -600,7 +600,7 @@ public string GetVersionWithEmptyLabelAndDisabledMessageIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-3+0")] @@ -716,7 +716,7 @@ public string GetVersionWithEmptyLabelAndMergeMessageOnlyIncrementingOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-foo.3+0")] @@ -829,7 +829,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -944,7 +944,7 @@ public string GetVersionWithLabelFooAndDisabledMessageIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-foo.3+0")] @@ -1060,7 +1060,7 @@ public string GetVersionWithLabelFooAndMergeMessageOnlyIncrementModeOnMain( .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.1-bar.3+0")] @@ -1173,7 +1173,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -1288,7 +1288,7 @@ public string GetVersionWithLabelBarAndDisabledMessageIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.0-bar.3+0")] @@ -1403,7 +1403,7 @@ public string GetVersionWithLabelBarAndMergeMessageOnlyIncrementModeOnMain( ).WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs index 9c7bcabfa2..f6a0b67a76 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreRelease.cs @@ -23,16 +23,16 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago (0.0.3-4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-4"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-4"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-6+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-1+0")] @@ -144,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-6+0")] @@ -257,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.3+0")] @@ -370,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar.3+0")] @@ -483,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs index 12edd46576..b1876d9b9d 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -23,16 +23,16 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago (0.0.3-bar) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-bar"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-bar"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-bar+0")] @@ -144,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-3+0")] @@ -257,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.3+0")] @@ -370,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar+0")] @@ -483,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs index 7a17efff78..4d820bf442 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -23,16 +23,16 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago (0.0.3-foo.4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-foo.4"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-foo.4"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.6+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-foo.1+0")] @@ -144,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-3+0")] @@ -257,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.6+0")] @@ -370,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar.3+0")] @@ -483,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs index 08147cc020..6c12f9a315 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsBranchedToFeatureWhenFirstCommitTaggedAsStable.cs @@ -23,16 +23,16 @@ public void OneTimeSetUp() // B 54 minutes ago (main) (HEAD -> feature/foo) // A 56 minutes ago (0.0.3) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3"); - fixture.MakeACommit("B"); - fixture.BranchTo("feature/foo"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3"); + this.fixture.MakeACommit("B"); + this.fixture.BranchTo("feature/foo"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-2+0")] [TestCase(IncrementStrategy.None, IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-1+0")] @@ -144,7 +144,7 @@ public string GetVersionWithNoLabelOnMain(IncrementStrategy incrementOnMain, Inc .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-2+0")] @@ -257,7 +257,7 @@ public string GetVersionWithEmptyLabelOnMain(IncrementStrategy incrementOnMain, .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.2+0")] @@ -370,7 +370,7 @@ public string GetVersionWithLabelFooOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar.2+0")] @@ -483,7 +483,7 @@ public string GetVersionWithLabelBarOnMain(IncrementStrategy incrementOnMain, In .WithBranch("feature", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs index e0870287f2..c6cfb92147 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhen.cs @@ -20,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+1")] @@ -54,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs index 9af2a5c2c6..ed79997963 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMajor.cs @@ -20,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: major"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A +semver: major"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "1.0.0-2+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "1.0.1-1+1")] @@ -54,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -83,7 +83,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -112,7 +112,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs index 448dfd3d55..52d0f82df3 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessageMinor.cs @@ -20,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: minor"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A +semver: minor"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.1.0-2+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.1.1-1+1")] @@ -54,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -83,7 +83,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -112,7 +112,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs index 59b99dc22f..9d8c5cb5e4 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitHasBumpMessagePatch.cs @@ -20,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A +semver: patch"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A +semver: patch"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.1-2+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+1")] @@ -54,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -83,7 +83,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -112,7 +112,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs index 005f2ebb60..fe8f1372da 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreRelease.cs @@ -20,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago (tag 0.0.3-4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-4"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-4"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-5+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-1+1")] @@ -55,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs index 4054022768..27a59e7ea3 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseBar.cs @@ -20,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago (tag 0.0.3-bar) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-bar"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-bar"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-bar+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-bar+1")] @@ -55,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs index c4dc69eb10..32e03f49ab 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsPreReleaseFoo.cs @@ -20,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago (tag 0.0.3-foo.4) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3-foo.4"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3-foo.4"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-foo.5+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-foo.1+1")] @@ -55,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs index a2b37126fb..02767d57f0 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenFirstCommitTaggedAsStable.cs @@ -20,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago (tag 0.0.3) - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.ApplyTag("0.0.3"); - fixture.MakeACommit("B"); + this.fixture.MakeACommit("A"); + this.fixture.ApplyTag("0.0.3"); + this.fixture.MakeACommit("B"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.3-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.4-1+1")] @@ -55,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs index e15fdd10d3..e0585a602c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMajor.cs @@ -20,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B +semver: major"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B +semver: major"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "1.0.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "1.0.0-1+1")] @@ -54,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -83,7 +83,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -112,7 +112,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs index c1ff1be838..426887aaa1 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessageMinor.cs @@ -20,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B +semver: minor"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B +semver: minor"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.1.0-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.1.0-1+1")] @@ -54,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -83,7 +83,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -112,7 +112,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs index 2a713a147d..9d75d815c6 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitHasBumpMessagePatch.cs @@ -20,14 +20,14 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B +semver: patch"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B +semver: patch"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.1-1+1")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.0.2-1+1")] @@ -54,7 +54,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -83,7 +83,7 @@ public string GetVersionWithDisabledMessageIncrementing(IncrementStrategy increm .WithCommitMessageIncrementing(CommitMessageIncrementMode.Disabled) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.0.0-2+1")] @@ -112,7 +112,7 @@ public string GetVersionWithMergeMessageOnlyIncrementing(IncrementStrategy incre .WithCommitMessageIncrementing(CommitMessageIncrementMode.MergeMessageOnly) ).Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs index 3eb23abdcf..8034031997 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreRelease.cs @@ -20,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) (tag 0.2.0-4) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.2.0-4"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.2.0-4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.2.0-4")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.2.0-4")] @@ -55,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs index 11f2194718..cc3a49943c 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseBar.cs @@ -20,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) (tag 0.2.0-bar) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.2.0-bar"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.2.0-bar"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.2.0-bar")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.2.0-bar")] @@ -55,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs index c1a1c786e2..76c3365db9 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsPreReleaseFoo.cs @@ -20,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) (tag 0.2.0-foo.4) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.2.0-foo.4"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.2.0-foo.4"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.2.0-foo.4")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.2.0-foo.4")] @@ -55,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs index aee9545108..fbec5045c5 100644 --- a/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs +++ b/src/GitVersion.Core.Tests/Mainline/MainlineScenariosWithAGitHubFlow+GivenAMainBranchWithTwoCommitsWhenSecondCommitTaggedAsStable.cs @@ -20,15 +20,15 @@ public void OneTimeSetUp() // B 58 minutes ago (HEAD -> main) (tag 0.2.0) // A 59 minutes ago - fixture = new EmptyRepositoryFixture(); + this.fixture = new EmptyRepositoryFixture(); - fixture.MakeACommit("A"); - fixture.MakeACommit("B"); - fixture.ApplyTag("0.2.0"); + this.fixture.MakeACommit("A"); + this.fixture.MakeACommit("B"); + this.fixture.ApplyTag("0.2.0"); } [OneTimeTearDown] - public void OneTimeTearDown() => fixture?.Dispose(); + public void OneTimeTearDown() => this.fixture?.Dispose(); [TestCase(IncrementStrategy.None, null, ExpectedResult = "0.2.0")] [TestCase(IncrementStrategy.Patch, null, ExpectedResult = "0.2.0")] @@ -55,7 +55,7 @@ public string GetVersion(IncrementStrategy increment, string? label) .WithBranch("main", b => b.WithIncrement(increment).WithLabel(label)) .Build(); - return fixture!.GetVersion(mainline).FullSemVer; + return this.fixture!.GetVersion(mainline).FullSemVer; } } } diff --git a/src/GitVersion.Core/Agents/BuildAgentBase.cs b/src/GitVersion.Core/Agents/BuildAgentBase.cs index 776e1f4efc..05fd1d0ad3 100644 --- a/src/GitVersion.Core/Agents/BuildAgentBase.cs +++ b/src/GitVersion.Core/Agents/BuildAgentBase.cs @@ -8,15 +8,15 @@ namespace GitVersion.Agents; internal abstract class BuildAgentBase(IEnvironment environment, ILog log, IFileSystem fileSystem) : ICurrentBuildAgent { protected readonly ILog Log = log.NotNull(); - protected readonly IEnvironment Environment = environment.NotNull(); - protected readonly IFileSystem FileSystem = fileSystem.NotNull(); + protected readonly IEnvironment environment = environment.NotNull(); + protected readonly IFileSystem fileSystem = fileSystem.NotNull(); protected abstract string EnvironmentVariable { get; } public abstract string? SetBuildNumber(GitVersionVariables variables); public abstract string[] SetOutputVariables(string name, string? value); - public virtual bool CanApplyToCurrentContext() => !Environment.GetEnvironmentVariable(EnvironmentVariable).IsNullOrEmpty(); + public virtual bool CanApplyToCurrentContext() => !this.environment.GetEnvironmentVariable(EnvironmentVariable).IsNullOrEmpty(); public virtual string? GetCurrentBranch(bool usingDynamicRepos) => null; diff --git a/src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs b/src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs index 032d469d58..07997c99e1 100644 --- a/src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs +++ b/src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs @@ -22,16 +22,16 @@ public IEnumerable<IBranch> GetBranchesContainingCommit(ICommit commit, IEnumera private IEnumerable<IBranch> InnerGetBranchesContainingCommit(ICommit commit, IEnumerable<IBranch> branches, bool onlyTrackedBranches) { - using (log.IndentLog($"Getting branches containing the commit '{commit.Id}'.")) + using (this.log.IndentLog($"Getting branches containing the commit '{commit.Id}'.")) { var directBranchHasBeenFound = false; - log.Info("Trying to find direct branches."); + this.log.Info("Trying to find direct branches."); // TODO: It looks wasteful looping through the branches twice. Can't these loops be merged somehow? @asbjornu var branchList = branches.ToList(); foreach (var branch in branchList.Where(branch => BranchTipIsNullOrCommit(branch, commit) && !IncludeTrackedBranches(branch, onlyTrackedBranches))) { directBranchHasBeenFound = true; - log.Info($"Direct branch found: '{branch}'."); + this.log.Info($"Direct branch found: '{branch}'."); yield return branch; } @@ -40,20 +40,20 @@ private IEnumerable<IBranch> InnerGetBranchesContainingCommit(ICommit commit, IE yield break; } - log.Info($"No direct branches found, searching through {(onlyTrackedBranches ? "tracked" : "all")} branches."); + this.log.Info($"No direct branches found, searching through {(onlyTrackedBranches ? "tracked" : "all")} branches."); foreach (var branch in branchList.Where(b => IncludeTrackedBranches(b, onlyTrackedBranches))) { - log.Info($"Searching for commits reachable from '{branch}'."); + this.log.Info($"Searching for commits reachable from '{branch}'."); var commits = this.repositoryStore.GetCommitsReacheableFrom(commit, branch); if (!commits.Any()) { - log.Info($"The branch '{branch}' has no matching commits."); + this.log.Info($"The branch '{branch}' has no matching commits."); continue; } - log.Info($"The branch '{branch}' has a matching commit."); + this.log.Info($"The branch '{branch}' has a matching commit."); yield return branch; } } diff --git a/src/GitVersion.Core/Core/RepositoryStore.cs b/src/GitVersion.Core/Core/RepositoryStore.cs index f9dad2ea96..033f74795f 100644 --- a/src/GitVersion.Core/Core/RepositoryStore.cs +++ b/src/GitVersion.Core/Core/RepositoryStore.cs @@ -24,7 +24,7 @@ internal class RepositoryStore(ILog log, IGitRepository repository) : IRepositor /// </summary> public ICommit? FindMergeBase(IBranch? branch, IBranch? otherBranch) { - var mergeBaseFinder = new MergeBaseFinder(this, log); + var mergeBaseFinder = new MergeBaseFinder(this, this.log); return mergeBaseFinder.FindMergeBaseOf(branch, otherBranch); } diff --git a/src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs b/src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs index 7c0190fd8d..6d40fe390e 100644 --- a/src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs +++ b/src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs @@ -25,7 +25,7 @@ public ILookup<ICommit, SemanticVersionWithTag> GetTaggedSemanticVersionsOfBranc tagPrefix ??= string.Empty; var isCached = true; - var result = taggedSemanticVersionsOfBranchCache.GetOrAdd(new(branch, tagPrefix, format), _ => + var result = this.taggedSemanticVersionsOfBranchCache.GetOrAdd(new(branch, tagPrefix, format), _ => { isCached = false; return [.. GetElements().Distinct().OrderByDescending(element => element.Tag.Commit.When)]; @@ -66,7 +66,7 @@ public ILookup<ICommit, SemanticVersionWithTag> GetTaggedSemanticVersionsOfMerge tagPrefix ??= string.Empty; var isCached = true; - var result = taggedSemanticVersionsOfMergeTargetCache.GetOrAdd(new(branch, tagPrefix, format), _ => + var result = this.taggedSemanticVersionsOfMergeTargetCache.GetOrAdd(new(branch, tagPrefix, format), _ => { isCached = false; return [.. GetElements().Distinct().OrderByDescending(element => element.Key.When)]; @@ -106,7 +106,7 @@ public ILookup<ICommit, SemanticVersionWithTag> GetTaggedSemanticVersions( tagPrefix ??= string.Empty; var isCached = true; - var result = taggedSemanticVersionsCache.GetOrAdd(new(tagPrefix, format), _ => + var result = this.taggedSemanticVersionsCache.GetOrAdd(new(tagPrefix, format), _ => { isCached = false; return [.. GetElements().OrderByDescending(element => element.Tag.Commit.When)]; diff --git a/src/GitVersion.Core/Formatting/ValueFormatter.cs b/src/GitVersion.Core/Formatting/ValueFormatter.cs index 0e0be49645..633a2afb61 100644 --- a/src/GitVersion.Core/Formatting/ValueFormatter.cs +++ b/src/GitVersion.Core/Formatting/ValueFormatter.cs @@ -11,7 +11,7 @@ internal class ValueFormatter : InvariantFormatter, IValueFormatterCombiner public int Priority => 0; internal ValueFormatter() - => formatters = + => this.formatters = [ new StringFormatter(), new FormattableFormatter(), @@ -27,7 +27,7 @@ public override bool TryFormat(object? value, string format, CultureInfo culture return false; } - foreach (var formatter in formatters.OrderBy(f => f.Priority)) + foreach (var formatter in this.formatters.OrderBy(f => f.Priority)) { if (formatter.TryFormat(value, format, out result)) return true; @@ -36,7 +36,7 @@ public override bool TryFormat(object? value, string format, CultureInfo culture return false; } - void IValueFormatterCombiner.RegisterFormatter(IValueFormatter formatter) => formatters.Add(formatter); + void IValueFormatterCombiner.RegisterFormatter(IValueFormatter formatter) => this.formatters.Add(formatter); - void IValueFormatterCombiner.RemoveFormatter<T>() => formatters.RemoveAll(f => f is T); + void IValueFormatterCombiner.RemoveFormatter<T>() => this.formatters.RemoveAll(f => f is T); } diff --git a/src/GitVersion.Core/SemVer/SemanticVersion.cs b/src/GitVersion.Core/SemVer/SemanticVersion.cs index 7ba6510dfc..0d93afa4ba 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersion.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersion.cs @@ -38,11 +38,11 @@ public bool IsMatchForBranchSpecificLabel(string? value) /// <summary>Initializes a new semantic version with the given major, minor, and patch values.</summary> public SemanticVersion(long major = 0, long minor = 0, long patch = 0) { - this.Major = major; - this.Minor = minor; - this.Patch = patch; - this.PreReleaseTag = SemanticVersionPreReleaseTag.Empty; - this.BuildMetaData = SemanticVersionBuildMetaData.Empty; + Major = major; + Minor = minor; + Patch = patch; + PreReleaseTag = SemanticVersionPreReleaseTag.Empty; + BuildMetaData = SemanticVersionBuildMetaData.Empty; } /// <summary>Initializes a new semantic version as a copy of <paramref name="semanticVersion"/>.</summary> @@ -50,12 +50,12 @@ public SemanticVersion(SemanticVersion semanticVersion) { semanticVersion.NotNull(); - this.Major = semanticVersion.Major; - this.Minor = semanticVersion.Minor; - this.Patch = semanticVersion.Patch; + Major = semanticVersion.Major; + Minor = semanticVersion.Minor; + Patch = semanticVersion.Patch; - this.PreReleaseTag = semanticVersion.PreReleaseTag; - this.BuildMetaData = semanticVersion.BuildMetaData; + PreReleaseTag = semanticVersion.PreReleaseTag; + BuildMetaData = semanticVersion.BuildMetaData; } /// <summary>Returns <see langword="true"/> when this version is equal to <paramref name="obj"/>.</summary> @@ -65,11 +65,11 @@ public bool Equals(SemanticVersion? obj) { return false; } - return this.Major == obj.Major - && this.Minor == obj.Minor - && this.Patch == obj.Patch - && this.PreReleaseTag == obj.PreReleaseTag - && this.BuildMetaData == obj.BuildMetaData; + return Major == obj.Major + && Minor == obj.Minor + && Patch == obj.Patch + && PreReleaseTag == obj.PreReleaseTag + && BuildMetaData == obj.BuildMetaData; } /// <summary>Returns <see langword="true"/> when this instance equals <see cref="Empty"/>.</summary> @@ -254,33 +254,33 @@ public int CompareTo(SemanticVersion? value, bool includePreRelease) { return 1; } - if (this.Major != value.Major) + if (Major != value.Major) { - if (this.Major > value.Major) + if (Major > value.Major) { return 1; } return -1; } - if (this.Minor != value.Minor) + if (Minor != value.Minor) { - if (this.Minor > value.Minor) + if (Minor > value.Minor) { return 1; } return -1; } - if (this.Patch != value.Patch) + if (Patch != value.Patch) { - if (this.Patch > value.Patch) + if (Patch > value.Patch) { return 1; } return -1; } - if (!includePreRelease || this.PreReleaseTag == value.PreReleaseTag) return 0; - if (this.PreReleaseTag > value.PreReleaseTag) + if (!includePreRelease || PreReleaseTag == value.PreReleaseTag) return 0; + if (PreReleaseTag > value.PreReleaseTag) { return 1; } @@ -313,20 +313,20 @@ public string ToString(string? format, IFormatProvider? formatProvider) switch (format) { case "j": - return $"{this.Major}.{this.Minor}.{this.Patch}"; + return $"{Major}.{Minor}.{Patch}"; case "s": - return this.PreReleaseTag.HasTag() ? $"{ToString("j")}-{this.PreReleaseTag}" : ToString("j"); + return PreReleaseTag.HasTag() ? $"{ToString("j")}-{PreReleaseTag}" : ToString("j"); case "t": - return this.PreReleaseTag.HasTag() ? $"{ToString("j")}-{this.PreReleaseTag:t}" : ToString("j"); + return PreReleaseTag.HasTag() ? $"{ToString("j")}-{PreReleaseTag:t}" : ToString("j"); case "f": { - var buildMetadata = this.BuildMetaData.ToString(); + var buildMetadata = BuildMetaData.ToString(); return !buildMetadata.IsNullOrEmpty() ? $"{ToString("s")}+{buildMetadata}" : ToString("s"); } case "i": { - var buildMetadata = this.BuildMetaData.ToString("f"); + var buildMetadata = BuildMetaData.ToString("f"); return !buildMetadata.IsNullOrEmpty() ? $"{ToString("s")}+{buildMetadata}" : ToString("s"); } diff --git a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs index 01bb2747c5..2c7366b071 100644 --- a/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs +++ b/src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs @@ -67,17 +67,17 @@ public SemanticVersionBuildMetaData( VersionField versionSourceIncrement, string? otherMetadata = null) { - this.Sha = commitSha; - this.ShortSha = commitShortSha; - this.CommitsSinceTag = commitsSinceTag; - this.Branch = branch; - this.CommitDate = commitDate; - this.OtherMetaData = otherMetadata; - this.VersionSourceIncrement = versionSourceIncrement; - this.VersionSourceSemVer = versionSourceSemVer; - this.VersionSourceSha = versionSourceSha; - this.VersionSourceDistance = commitsSinceTag ?? 0; - this.UncommittedChanges = numberOfUnCommittedChanges; + Sha = commitSha; + ShortSha = commitShortSha; + CommitsSinceTag = commitsSinceTag; + Branch = branch; + CommitDate = commitDate; + OtherMetaData = otherMetadata; + VersionSourceIncrement = versionSourceIncrement; + VersionSourceSemVer = versionSourceSemVer; + VersionSourceSha = versionSourceSha; + VersionSourceDistance = commitsSinceTag ?? 0; + UncommittedChanges = numberOfUnCommittedChanges; } /// <summary>Initializes a new build metadata instance as a copy of <paramref name="buildMetaData"/>.</summary> @@ -85,17 +85,17 @@ public SemanticVersionBuildMetaData(SemanticVersionBuildMetaData buildMetaData) { buildMetaData.NotNull(); - this.Sha = buildMetaData.Sha; - this.ShortSha = buildMetaData.ShortSha; - this.CommitsSinceTag = buildMetaData.CommitsSinceTag; - this.Branch = buildMetaData.Branch; - this.CommitDate = buildMetaData.CommitDate; - this.OtherMetaData = buildMetaData.OtherMetaData; - this.VersionSourceSemVer = buildMetaData.VersionSourceSemVer; - this.VersionSourceSha = buildMetaData.VersionSourceSha; - this.VersionSourceDistance = buildMetaData.VersionSourceDistance; - this.UncommittedChanges = buildMetaData.UncommittedChanges; - this.VersionSourceIncrement = buildMetaData.VersionSourceIncrement; + Sha = buildMetaData.Sha; + ShortSha = buildMetaData.ShortSha; + CommitsSinceTag = buildMetaData.CommitsSinceTag; + Branch = buildMetaData.Branch; + CommitDate = buildMetaData.CommitDate; + OtherMetaData = buildMetaData.OtherMetaData; + VersionSourceSemVer = buildMetaData.VersionSourceSemVer; + VersionSourceSha = buildMetaData.VersionSourceSha; + VersionSourceDistance = buildMetaData.VersionSourceDistance; + UncommittedChanges = buildMetaData.UncommittedChanges; + VersionSourceIncrement = buildMetaData.VersionSourceIncrement; } /// <summary>Returns <see langword="true"/> when <paramref name="obj"/> is a <see cref="SemanticVersionBuildMetaData"/> equal to this instance.</summary> @@ -129,9 +129,9 @@ public string ToString(string? format, IFormatProvider? formatProvider) format = format.ToLower(); return format.ToLower() switch { - "b" => $"{this.CommitsSinceTag}", - "s" => $"{this.CommitsSinceTag}{(this.Sha.IsNullOrEmpty() ? null : ".Sha." + this.Sha)}".TrimStart('.'), - "f" => $"{this.CommitsSinceTag}{(this.Branch.IsNullOrEmpty() ? null : ".Branch." + FormatMetaDataPart(this.Branch))}{(this.Sha.IsNullOrEmpty() ? null : ".Sha." + this.Sha)}{(this.OtherMetaData.IsNullOrEmpty() ? null : "." + FormatMetaDataPart(this.OtherMetaData))}".TrimStart('.'), + "b" => $"{CommitsSinceTag}", + "s" => $"{CommitsSinceTag}{(Sha.IsNullOrEmpty() ? null : ".Sha." + Sha)}".TrimStart('.'), + "f" => $"{CommitsSinceTag}{(Branch.IsNullOrEmpty() ? null : ".Branch." + FormatMetaDataPart(Branch))}{(Sha.IsNullOrEmpty() ? null : ".Sha." + Sha)}{(OtherMetaData.IsNullOrEmpty() ? null : "." + FormatMetaDataPart(OtherMetaData))}".TrimStart('.'), _ => throw new FormatException($"Unknown format '{format}'.") }; } diff --git a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs index 021318ece0..d39b8c8ddb 100644 --- a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs +++ b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs @@ -158,7 +158,7 @@ private string GetOverrideConfigHash(IReadOnlyDictionary<object, object?>? overr // Doesn't depend on command line representation and // includes possible changes in default values of Config per se. - var configContent = configurationSerializer.Serialize(overrideConfiguration); + var configContent = this.configurationSerializer.Serialize(overrideConfiguration); return GetHash(configContent); } diff --git a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheProvider.cs b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheProvider.cs index 904833a85b..d82ab6470f 100644 --- a/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheProvider.cs +++ b/src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheProvider.cs @@ -31,7 +31,7 @@ public void WriteVariablesToDiskCache(GitVersionVariables versionVariables) { try { - serializer.ToFile(versionVariables, cacheFileName); + this.serializer.ToFile(versionVariables, cacheFileName); } catch (Exception ex) { @@ -54,7 +54,7 @@ public void WriteVariablesToDiskCache(GitVersionVariables versionVariables) try { - var loadedVariables = serializer.FromFile(cacheFileName); + var loadedVariables = this.serializer.FromFile(cacheFileName); return loadedVariables; } catch (Exception ex) @@ -99,7 +99,7 @@ private string PrepareCacheDirectory() private GitVersionCacheKey GetCacheKey() { - var cacheKey = this.cacheKeyFactory.Create(options.Value.ConfigurationInfo.OverrideConfiguration); + var cacheKey = this.cacheKeyFactory.Create(this.options.Value.ConfigurationInfo.OverrideConfiguration); return cacheKey; } diff --git a/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs b/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs index d7ed16e257..0b106168c0 100644 --- a/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs +++ b/src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs @@ -98,7 +98,7 @@ private Dictionary<string, ICommit>.ValueCollection GetCommitHistory(string? tag ICommit? baseVersionSource, ICommit currentCommit, string? label, IIgnoreConfiguration ignore) { var targetShas = new Lazy<HashSet<string>>(() => - [.. taggedSemanticVersionRepository + [.. this.taggedSemanticVersionRepository .GetTaggedSemanticVersions(tagPrefix, semanticVersionFormat, ignore) .SelectMany(versionWithTags => versionWithTags) .Where(versionWithTag => versionWithTag.Value.IsMatchForBranchSpecificLabel(label)) diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineCommit.cs b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineCommit.cs index 2340fa42f6..6b3c75fb00 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineCommit.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineCommit.cs @@ -50,7 +50,7 @@ public bool IsPredecessorTheLastCommitOnTrunk(IGitVersionConfiguration configura [MemberNotNullWhen(true, nameof(ParentIteration), nameof(ParentCommit))] private bool HasParentIteration => Iteration.ParentIteration is not null && Iteration.ParentCommit is not null; - public IReadOnlyCollection<SemanticVersion> SemanticVersions => semanticVersions; + public IReadOnlyCollection<SemanticVersion> SemanticVersions => this.semanticVersions; private readonly HashSet<SemanticVersion> semanticVersions = []; @@ -58,7 +58,7 @@ public bool IsPredecessorTheLastCommitOnTrunk(IGitVersionConfiguration configura public EffectiveConfiguration GetEffectiveConfiguration(IGitVersionConfiguration configuration) { - if (effectiveConfiguration is not null) return effectiveConfiguration; + if (this.effectiveConfiguration is not null) return this.effectiveConfiguration; var branchConfiguration = Configuration; @@ -81,7 +81,7 @@ public EffectiveConfiguration GetEffectiveConfiguration(IGitVersionConfiguration var parentConfiguration = ParentCommit.GetEffectiveConfiguration(configuration); branchConfiguration = branchConfiguration.Inherit(parentConfiguration); - return effectiveConfiguration = new EffectiveConfiguration(configuration, branchConfiguration); + return this.effectiveConfiguration = new EffectiveConfiguration(configuration, branchConfiguration); } public VersionField GetIncrementForcedByBranch(IGitVersionConfiguration configuration) @@ -97,7 +97,7 @@ public void AddSemanticVersions(IEnumerable<SemanticVersion> values) { foreach (var semanticVersion in values.NotNull()) { - semanticVersions.Add(semanticVersion); + this.semanticVersions.Add(semanticVersion); } } diff --git a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineIteration.cs b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineIteration.cs index e9032754e6..4cbac8a4bb 100644 --- a/src/GitVersion.Core/VersionCalculation/Mainline/MainlineIteration.cs +++ b/src/GitVersion.Core/VersionCalculation/Mainline/MainlineIteration.cs @@ -44,9 +44,9 @@ public EffectiveConfiguration GetEffectiveConfiguration(IGitVersionConfiguration public int Depth { get; } - public int NumberOfCommits => commits.Count; + public int NumberOfCommits => this.commits.Count; - public IReadOnlyCollection<MainlineCommit> Commits => commits; + public IReadOnlyCollection<MainlineCommit> Commits => this.commits; private readonly Stack<MainlineCommit> commits = new(); private readonly Dictionary<ICommit, MainlineCommit> commitLookup = []; @@ -68,11 +68,11 @@ public MainlineCommit CreateCommit( var commit = this.commits.Count != 0 ? this.commits.Peek().Append(value, branchName, configuration) : new MainlineCommit(this, value, branchName, configuration); - commits.Push(commit); + this.commits.Push(commit); if (value is not null) { - commitLookup.Add(value, commit); + this.commitLookup.Add(value, commit); } return commit; @@ -82,7 +82,7 @@ public MainlineCommit CreateCommit( { commit.NotNull(); - commitLookup.TryGetValue(commit, out var result); + this.commitLookup.TryGetValue(commit, out var result); return result; } } diff --git a/src/GitVersion.Core/VersionCalculation/PathFilter.cs b/src/GitVersion.Core/VersionCalculation/PathFilter.cs index 75c93fbf13..aa724ecb58 100644 --- a/src/GitVersion.Core/VersionCalculation/PathFilter.cs +++ b/src/GitVersion.Core/VersionCalculation/PathFilter.cs @@ -24,10 +24,10 @@ public bool Exclude(IBaseVersion baseVersion, [NotNullWhen(true)] out string? re private bool IsMatch(string path) { - if (!pathMatchCache.TryGetValue(path, out var isMatch)) + if (!this.pathMatchCache.TryGetValue(path, out var isMatch)) { isMatch = this.pathsRegexes.Any(regex => regex.IsMatch(path)); - pathMatchCache[path] = isMatch; + this.pathMatchCache[path] = isMatch; } return isMatch; } @@ -44,7 +44,7 @@ public bool Exclude(ICommit? commit, [NotNullWhen(true)] out string? reason) { case PathFilterMode.Inclusive: { - if (commit.DiffPaths.All(this.IsMatch)) + if (commit.DiffPaths.All(IsMatch)) { reason = "Source was ignored due to all commit paths matching ignore regex"; return true; diff --git a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs index ec302556e8..d4b70d031e 100644 --- a/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs +++ b/src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs @@ -20,13 +20,13 @@ public class SemanticVersionFormatValues(SemanticVersion semver, IGitVersionConf public string PreReleaseTag => semver.PreReleaseTag.ToString(); /// <summary>Gets the pre-release tag prefixed with a dash (e.g. <c>-beta.1</c>), or empty string when there is no tag.</summary> - public string PreReleaseTagWithDash => this.PreReleaseTag.WithPrefixIfNotNullOrEmpty("-"); + public string PreReleaseTagWithDash => PreReleaseTag.WithPrefixIfNotNullOrEmpty("-"); /// <summary>Gets the pre-release label without the numeric identifier (e.g. <c>beta</c>).</summary> public string PreReleaseLabel => semver.PreReleaseTag.Name; /// <summary>Gets the pre-release label prefixed with a dash (e.g. <c>-beta</c>), or empty string when there is no label.</summary> - public string PreReleaseLabelWithDash => this.PreReleaseLabel.WithPrefixIfNotNullOrEmpty("-"); + public string PreReleaseLabelWithDash => PreReleaseLabel.WithPrefixIfNotNullOrEmpty("-"); /// <summary>Gets the numeric pre-release identifier as a string, or empty string when absent.</summary> public string PreReleaseNumber => semver.PreReleaseTag.Number?.ToString() ?? string.Empty; diff --git a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs index 40dd3484ed..8d2852cf93 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs @@ -156,7 +156,7 @@ private SemanticVersion CalculateSemanticVersion( private NextVersion CalculateNextVersion(IBranch branch, IGitVersionConfiguration configuration) { var nextVersions = GetNextVersions(branch, configuration); - log.Separator(); + this.log.Separator(); var maxVersion = nextVersions.Max() ?? throw new GitVersionException("No base versions determined on the current branch."); @@ -173,7 +173,7 @@ private NextVersion CalculateNextVersion(IBranch branch, IGitVersionConfiguratio var latestVersion = matchingVersionsOnceIncremented.Aggregate(CompareVersions); latestBaseVersionSource = latestVersion.BaseVersion.BaseVersionSource; maxVersion = latestVersion; - log.Info( + this.log.Info( $"Found multiple base versions which will produce the same SemVer ({maxVersion.IncrementedVersion}), " + $"taking latest source for commit counting ({latestVersion.BaseVersion.Source})"); } @@ -210,8 +210,8 @@ private NextVersion CalculateNextVersion(IBranch branch, IGitVersionConfiguratio } }; - log.Info($"Base version used: {calculatedBase}"); - log.Separator(); + this.log.Info($"Base version used: {calculatedBase}"); + this.log.Separator(); return new(maxVersion.IncrementedVersion, calculatedBase, maxVersion.BranchConfiguration); } @@ -231,7 +231,7 @@ private static NextVersion CompareVersions(NextVersion version1, NextVersion ver private List<NextVersion> GetNextVersions(IBranch branch, IGitVersionConfiguration configuration) { - using (log.IndentLog("Fetching the base versions for version calculation...")) + using (this.log.IndentLog("Fetching the base versions for version calculation...")) { if (branch.Tip == null) throw new GitVersionException("No commits found on the current branch."); @@ -263,7 +263,7 @@ IEnumerable<NextVersion> GetNextVersionsInternal() { foreach (var baseVersion in versionStrategy.GetBaseVersions(effectiveBranchConfiguration)) { - log.Info(baseVersion.ToString()); + this.log.Info(baseVersion.ToString()); if (!IncludeVersion(baseVersion, configuration.Ignore)) continue; atLeastOneBaseVersionReturned = true; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/ConfiguredNextVersionVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/ConfiguredNextVersionVersionStrategy.cs index eee9b78d8f..2c02b9821b 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/ConfiguredNextVersionVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/ConfiguredNextVersionVersionStrategy.cs @@ -13,7 +13,7 @@ internal sealed class ConfiguredNextVersionVersionStrategy(Lazy<GitVersionContex private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); private readonly IEnvironment environment = environment.NotNull(); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration) { @@ -27,7 +27,7 @@ public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration con var semanticVersion = SemanticVersion.Parse( nextVersion, Context.Configuration.TagPrefixPattern, Context.Configuration.SemanticVersionFormat ); - var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, environment); + var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); if (!semanticVersion.IsMatchForBranchSpecificLabel(label)) yield break; BaseVersionOperator? operation = null; diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs index 7bbf3520db..a5a1beb51d 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs @@ -20,7 +20,7 @@ internal sealed class FallbackVersionStrategy( private readonly ITaggedSemanticVersionService taggedSemanticVersionService = taggedSemanticVersionService.NotNull(); private readonly IEnvironment environment = environment.NotNull(); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration) => GetBaseVersionsInternal(configuration); @@ -34,7 +34,7 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur var label = configuration.Value.GetBranchSpecificLabel(Context.CurrentBranch.Name, null, this.environment); - var baseVersionSource = taggedSemanticVersionService.GetTaggedSemanticVersions( + var baseVersionSource = this.taggedSemanticVersionService.GetTaggedSemanticVersions( branch: Context.CurrentBranch, configuration: Context.Configuration, label: label, @@ -42,7 +42,7 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur taggedSemanticVersion: configuration.Value.GetTaggedSemanticVersion() ).Select(element => element.Key).FirstOrDefault(); - var increment = incrementStrategyFinder.DetermineIncrementedField( + var increment = this.incrementStrategyFinder.DetermineIncrementedField( currentCommit: Context.CurrentCommit, baseVersionSource: baseVersionSource, shouldIncrement: true, diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs index 1e95dc8916..03c45abc5a 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs @@ -23,7 +23,7 @@ internal sealed class MainlineVersionStrategy( private readonly IEnvironment environment = environment.NotNull(); private readonly Dictionary<string, Dictionary<ICommit, List<(IBranch, IBranchConfiguration)>>> commitsWasBranchedFromCache = new(); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; private static readonly IReadOnlyCollection<IContextPreEnricher> TrunkContextPreEnricherCollection = [ @@ -95,7 +95,7 @@ public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration con { taggedSemanticVersion |= TaggedSemanticVersions.OfMainBranches; } - var taggedSemanticVersions = taggedSemanticVersionService.GetTaggedSemanticVersions( + var taggedSemanticVersions = this.taggedSemanticVersionService.GetTaggedSemanticVersions( branch: Context.CurrentBranch, configuration: Context.Configuration, label: null, @@ -111,14 +111,14 @@ public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration con taggedSemanticVersions: taggedSemanticVersions ); - yield return DetermineBaseVersion(iteration, targetLabel, incrementStrategyFinder, Context.Configuration, this.environment); + yield return DetermineBaseVersion(iteration, targetLabel, this.incrementStrategyFinder, Context.Configuration, this.environment); } private MainlineIteration CreateIteration( ReferenceName branchName, IBranchConfiguration configuration, MainlineIteration? parentIteration = null, MainlineCommit? parentCommit = null) { - var iterationCount = Interlocked.Increment(ref iterationCounter); + var iterationCount = Interlocked.Increment(ref this.iterationCounter); return new MainlineIteration( id: $"#{iterationCount}", branchName: branchName, @@ -138,7 +138,7 @@ private bool IterateOverCommitsRecursive( var configuration = iteration.Configuration; var branchName = iteration.BranchName; - var branch = repositoryStore.FindBranch(branchName); + var branch = this.repositoryStore.FindBranch(branchName); var currentBranch = branch; Lazy<IReadOnlyDictionary<ICommit, List<(IBranch Branch, IBranchConfiguration Value)>>> commitsWasBranchedFromLazy = new( @@ -165,7 +165,7 @@ private bool IterateOverCommitsRecursive( configuration = effectiveConfigurationWasBranchedFrom.Value; branchName = effectiveConfigurationWasBranchedFrom.Branch.Name; - branch = repositoryStore.FindBranch(branchName); + branch = this.repositoryStore.FindBranch(branchName); var branchPointer = branch; commitsWasBranchedFromLazy = new Lazy<IReadOnlyDictionary<ICommit, List<(IBranch Branch, IBranchConfiguration Configuration)>>> @@ -186,7 +186,7 @@ private bool IterateOverCommitsRecursive( { taggedSemanticVersion |= TaggedSemanticVersions.OfMainBranches; } - taggedSemanticVersions = taggedSemanticVersionService.GetTaggedSemanticVersions( + taggedSemanticVersions = this.taggedSemanticVersionService.GetTaggedSemanticVersions( branch: effectiveConfigurationWasBranchedFrom.Branch, configuration: Context.Configuration, label: null, @@ -289,7 +289,7 @@ private bool IterateOverCommitsRecursive( Dictionary<ICommit, List<(IBranch, IBranchConfiguration Configuration)>> result = []; - var branchCommits = repositoryStore.FindCommitBranchesBranchedFrom( + var branchCommits = this.repositoryStore.FindCommitBranchesBranchedFrom( branch, Context.Configuration, excludedBranches: excludedBranches ).ToList(); diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs index 1630242a6f..d90485bb18 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs @@ -19,7 +19,7 @@ internal sealed class MergeMessageVersionStrategy(ILog log, Lazy<GitVersionConte private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); private readonly IEnvironment environment = environment.NotNull(); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration) => GetBaseVersionsInternal(configuration).Take(5); diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs index ecc78b068b..6ec001bca8 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs @@ -23,7 +23,7 @@ internal sealed class TaggedCommitVersionStrategy( private readonly IIncrementStrategyFinder incrementStrategyFinder = incrementStrategyFinder.NotNull(); private readonly IEnvironment environment = environment.NotNull(); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration) => GetBaseVersionsInternal(configuration); @@ -35,7 +35,7 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur if (!Context.Configuration.VersionStrategy.HasFlag(VersionStrategies.TaggedCommit)) yield break; - var taggedSemanticVersions = taggedSemanticVersionService.GetTaggedSemanticVersions( + var taggedSemanticVersions = this.taggedSemanticVersionService.GetTaggedSemanticVersions( branch: Context.CurrentBranch, configuration: Context.Configuration, label: null, @@ -69,7 +69,7 @@ private IEnumerable<BaseVersion> GetBaseVersionsInternal(EffectiveBranchConfigur } var baseVersionSource = semanticVersion.Tag.Commit; - var increment = incrementStrategyFinder.DetermineIncrementedField( + var increment = this.incrementStrategyFinder.DetermineIncrementedField( currentCommit: Context.CurrentCommit, baseVersionSource: baseVersionSource, shouldIncrement: true, diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs index 76b95c0e14..7ee57f9abc 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs @@ -20,7 +20,7 @@ internal sealed class TrackReleaseBranchesVersionStrategy( private readonly IEnvironment environment = environment.NotNull(); private readonly VersionInBranchNameVersionStrategy releaseVersionStrategy = new(contextLazy, environment); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration) { diff --git a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionInBranchNameVersionStrategy.cs b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionInBranchNameVersionStrategy.cs index 08886ecb59..5584345a53 100644 --- a/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionInBranchNameVersionStrategy.cs +++ b/src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/VersionInBranchNameVersionStrategy.cs @@ -14,7 +14,7 @@ internal sealed class VersionInBranchNameVersionStrategy(Lazy<GitVersionContext> private readonly Lazy<GitVersionContext> contextLazy = contextLazy.NotNull(); private readonly IEnvironment environment = environment.NotNull(); - private GitVersionContext Context => contextLazy.Value; + private GitVersionContext Context => this.contextLazy.Value; public IEnumerable<BaseVersion> GetBaseVersions(EffectiveBranchConfiguration configuration) { diff --git a/src/GitVersion.LibGit2Sharp/Git/Commit.cs b/src/GitVersion.LibGit2Sharp/Git/Commit.cs index 950fbf5a2a..15286b54fd 100644 --- a/src/GitVersion.LibGit2Sharp/Git/Commit.cs +++ b/src/GitVersion.LibGit2Sharp/Git/Commit.cs @@ -39,10 +39,10 @@ public IReadOnlyList<string> DiffPaths { get { - if (!pathsCache.TryGetValue(this.Sha, out var paths)) + if (!pathsCache.TryGetValue(Sha, out var paths)) { - paths = this.CommitChanges.Paths; - pathsCache[this.Sha] = paths; + paths = CommitChanges.Paths; + pathsCache[Sha] = paths; } return paths; } diff --git a/src/GitVersion.LibGit2Sharp/Git/GitRepositoryCache.cs b/src/GitVersion.LibGit2Sharp/Git/GitRepositoryCache.cs index 8d8eba006b..01fe95c837 100644 --- a/src/GitVersion.LibGit2Sharp/Git/GitRepositoryCache.cs +++ b/src/GitVersion.LibGit2Sharp/Git/GitRepositoryCache.cs @@ -17,21 +17,21 @@ public Branch GetOrWrap(LibGit2Sharp.Branch innerBranch, Diff repoDiff) var cacheKey = innerBranch.Tip is null ? $"{innerBranch.RemoteName}/{innerBranch.CanonicalName}" : $"{innerBranch.RemoteName}/{innerBranch.CanonicalName}@{innerBranch.Tip.Sha}"; - return cachedBranches.GetOrAdd(cacheKey, _ => new Branch(innerBranch, repoDiff, this)); + return this.cachedBranches.GetOrAdd(cacheKey, _ => new Branch(innerBranch, repoDiff, this)); } public Commit GetOrWrap(LibGit2Sharp.Commit innerCommit, Diff repoDiff) - => cachedCommits.GetOrAdd(innerCommit.Sha, _ => new Commit(innerCommit, repoDiff, this)); + => this.cachedCommits.GetOrAdd(innerCommit.Sha, _ => new Commit(innerCommit, repoDiff, this)); public Tag GetOrWrap(LibGit2Sharp.Tag innerTag, Diff repoDiff) - => cachedTags.GetOrAdd(innerTag.CanonicalName, _ => new Tag(innerTag, repoDiff, this)); + => this.cachedTags.GetOrAdd(innerTag.CanonicalName, _ => new Tag(innerTag, repoDiff, this)); public Remote GetOrWrap(LibGit2Sharp.Remote innerRemote) - => cachedRemotes.GetOrAdd(innerRemote.Name, _ => new Remote(innerRemote, this)); + => this.cachedRemotes.GetOrAdd(innerRemote.Name, _ => new Remote(innerRemote, this)); public Reference GetOrWrap(LibGit2Sharp.Reference innerReference) - => cachedReferences.GetOrAdd(innerReference.CanonicalName, _ => new Reference(innerReference)); + => this.cachedReferences.GetOrAdd(innerReference.CanonicalName, _ => new Reference(innerReference)); public RefSpec GetOrWrap(LibGit2Sharp.RefSpec innerRefSpec) - => cachedRefSpecs.GetOrAdd(innerRefSpec.Specification, _ => new RefSpec(innerRefSpec)); + => this.cachedRefSpecs.GetOrAdd(innerRefSpec.Specification, _ => new RefSpec(innerRefSpec)); } diff --git a/src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs b/src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs index 3ed170beb0..756951afcf 100644 --- a/src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs +++ b/src/GitVersion.LibGit2Sharp/Git/GitRepositoryInfo.cs @@ -33,7 +33,7 @@ public GitRepositoryInfo(IFileSystem fileSystem, IOptions<GitVersionOptions> opt private string? GetDynamicGitRepositoryPath() { - var repositoryInfo = gitVersionOptions.RepositoryInfo; + var repositoryInfo = this.gitVersionOptions.RepositoryInfo; if (repositoryInfo.TargetUrl.IsNullOrWhiteSpace()) return null; var targetUrl = repositoryInfo.TargetUrl; @@ -64,7 +64,7 @@ public GitRepositoryInfo(IFileSystem fileSystem, IOptions<GitVersionOptions> opt { var gitDirectory = !DynamicGitRepositoryPath.IsNullOrWhiteSpace() ? DynamicGitRepositoryPath - : Repository.Discover(gitVersionOptions.WorkingDirectory); + : Repository.Discover(this.gitVersionOptions.WorkingDirectory); gitDirectory = gitDirectory?.TrimEnd('/', '\\'); if (gitDirectory.IsNullOrEmpty()) @@ -80,10 +80,10 @@ private string GetProjectRootDirectory() { if (!DynamicGitRepositoryPath.IsNullOrWhiteSpace()) { - return gitVersionOptions.WorkingDirectory; + return this.gitVersionOptions.WorkingDirectory; } - var gitDirectory = Repository.Discover(gitVersionOptions.WorkingDirectory); + var gitDirectory = Repository.Discover(this.gitVersionOptions.WorkingDirectory); if (gitDirectory.IsNullOrEmpty()) throw new DirectoryNotFoundException("Cannot find the .git directory"); diff --git a/src/GitVersion.LibGit2Sharp/Git/ReferenceCollection.cs b/src/GitVersion.LibGit2Sharp/Git/ReferenceCollection.cs index 5e0b795cd3..6eed74bf4d 100644 --- a/src/GitVersion.LibGit2Sharp/Git/ReferenceCollection.cs +++ b/src/GitVersion.LibGit2Sharp/Git/ReferenceCollection.cs @@ -50,5 +50,5 @@ public void UpdateTarget(IReference directRef, IObjectId targetId) => }); private void InitializeReferencesLazy() - => this.references = new Lazy<IReadOnlyCollection<IReference>>(() => [.. this.innerCollection.Select(repositoryCache.GetOrWrap)]); + => this.references = new Lazy<IReadOnlyCollection<IReference>>(() => [.. this.innerCollection.Select(this.repositoryCache.GetOrWrap)]); } diff --git a/src/GitVersion.LibGit2Sharp/Git/RemoteCollection.cs b/src/GitVersion.LibGit2Sharp/Git/RemoteCollection.cs index c63f135823..01c9f2fbb9 100644 --- a/src/GitVersion.LibGit2Sharp/Git/RemoteCollection.cs +++ b/src/GitVersion.LibGit2Sharp/Git/RemoteCollection.cs @@ -43,5 +43,5 @@ public void Update(string remoteName, string refSpec) => }); private void InitializeRemotesLazy() - => this.remotes = new Lazy<IReadOnlyCollection<IRemote>>(() => [.. this.innerCollection.Select(repositoryCache.GetOrWrap)]); + => this.remotes = new Lazy<IReadOnlyCollection<IRemote>>(() => [.. this.innerCollection.Select(this.repositoryCache.GetOrWrap)]); } diff --git a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs index 345c3bb9c6..98c4ae310d 100644 --- a/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs +++ b/src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs @@ -18,13 +18,13 @@ public class MsBuildExeFixture public const string OutputTarget = "GitVersionOutput"; private readonly AnalyzerManager manager = new(); - private readonly string ProjectPath; + private readonly string projectPath; public MsBuildExeFixture(RepositoryFixtureBase fixture, string workingDirectory = "", string language = "C#") { var projectExtension = AssemblyInfoFileHelper.GetProjectExtension(language); this.fixture = fixture; - this.ProjectPath = FileSystemHelper.Path.Combine(workingDirectory, $"app.{projectExtension}"); + this.projectPath = FileSystemHelper.Path.Combine(workingDirectory, $"app.{projectExtension}"); var versionFile = FileSystemHelper.Path.Combine(workingDirectory, "gitversion.json"); @@ -33,7 +33,7 @@ public MsBuildExeFixture(RepositoryFixtureBase fixture, string workingDirectory public MsBuildExeFixtureResult Execute() { - var analyzer = this.manager.GetProject(this.ProjectPath); + var analyzer = this.manager.GetProject(this.projectPath); var output = new StringWriter(); analyzer.AddBuildLogger(new ConsoleLogger(LoggerVerbosity.Normal, output.Write, null, null)); @@ -54,7 +54,7 @@ public MsBuildExeFixtureResult Execute() return new MsBuildExeFixtureResult(this.fixture) { - ProjectPath = ProjectPath, + ProjectPath = this.projectPath, Output = output.ToString(), MsBuild = results }; @@ -62,7 +62,7 @@ public MsBuildExeFixtureResult Execute() public void CreateTestProject(Action<ProjectCreator> extendProject) { - var project = ProjectCreator.Templates.SdkCsproj(this.ProjectPath); + var project = ProjectCreator.Templates.SdkCsproj(this.projectPath); extendProject(project); project.Save(); diff --git a/src/GitVersion.MsBuild/GitVersionTaskExecutor.cs b/src/GitVersion.MsBuild/GitVersionTaskExecutor.cs index ac43593d01..06f53ee930 100644 --- a/src/GitVersion.MsBuild/GitVersionTaskExecutor.cs +++ b/src/GitVersion.MsBuild/GitVersionTaskExecutor.cs @@ -39,7 +39,7 @@ public void UpdateAssemblyInfo(UpdateAssemblyInfo task) if (!string.IsNullOrEmpty(task.IntermediateOutputPath)) { // Ensure provided output path exists first. Fixes issue #2815. - fileSystem.Directory.CreateDirectory(task.IntermediateOutputPath); + this.fileSystem.Directory.CreateDirectory(task.IntermediateOutputPath); } var fileWriteInfo = task.IntermediateOutputPath.GetFileWriteInfo(task.Language, task.ProjectFile, "AssemblyInfo"); @@ -55,7 +55,7 @@ public void UpdateAssemblyInfo(UpdateAssemblyInfo task) gitVersionOptions.AssemblySettingsInfo.EnsureAssemblyInfo = true; gitVersionOptions.AssemblySettingsInfo.Files.Add(fileWriteInfo.FileName); - gitVersionOutputTool.UpdateAssemblyInfo(versionVariables); + this.gitVersionOutputTool.UpdateAssemblyInfo(versionVariables); } public void GenerateGitVersionInformation(GenerateGitVersionInformation task) @@ -65,7 +65,7 @@ public void GenerateGitVersionInformation(GenerateGitVersionInformation task) if (!string.IsNullOrEmpty(task.IntermediateOutputPath)) { // Ensure provided output path exists first. Fixes issue #2815. - fileSystem.Directory.CreateDirectory(task.IntermediateOutputPath); + this.fileSystem.Directory.CreateDirectory(task.IntermediateOutputPath); } var fileWriteInfo = task.IntermediateOutputPath.GetFileWriteInfo(task.Language, task.ProjectFile, "GitVersionInformation"); @@ -78,7 +78,7 @@ public void GenerateGitVersionInformation(GenerateGitVersionInformation task) var gitVersionOptions = this.options.Value; gitVersionOptions.WorkingDirectory = fileWriteInfo.WorkingDirectory; var targetNamespace = GetTargetNamespace(task); - gitVersionOutputTool.GenerateGitVersionInformation(versionVariables, fileWriteInfo, targetNamespace); + this.gitVersionOutputTool.GenerateGitVersionInformation(versionVariables, fileWriteInfo, targetNamespace); return; static string? GetTargetNamespace(GenerateGitVersionInformation task) @@ -102,8 +102,8 @@ public void WriteVersionInfoToBuildLog(WriteVersionInfoToBuildLog task) var gitVersionOptions = this.options.Value; var configuration = this.configurationProvider.Provide(gitVersionOptions.ConfigurationInfo.OverrideConfiguration); - gitVersionOutputTool.OutputVariables(versionVariables, configuration.UpdateBuildNumber); + this.gitVersionOutputTool.OutputVariables(versionVariables, configuration.UpdateBuildNumber); } - private GitVersionVariables GitVersionVariables(GitVersionTaskBase task) => serializer.FromFile(task.VersionFile); + private GitVersionVariables GitVersionVariables(GitVersionTaskBase task) => this.serializer.FromFile(task.VersionFile); } diff --git a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs index d7656de86b..3551a56d69 100644 --- a/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/AssemblyInfoFileUpdaterTests.cs @@ -19,10 +19,10 @@ public class AssemblyInfoFileUpdaterTests : TestBase private string workingDir = null!; [OneTimeSetUp] - public void OneTimeSetUp() => workingDir = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), nameof(AssemblyInfoFileUpdaterTests)); + public void OneTimeSetUp() => this.workingDir = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), nameof(AssemblyInfoFileUpdaterTests)); [OneTimeTearDown] - public void OneTimeTearDown() => FileSystemHelper.Directory.DeleteDirectory(workingDir); + public void OneTimeTearDown() => FileSystemHelper.Directory.DeleteDirectory(this.workingDir); [SetUp] public void Setup() @@ -42,13 +42,13 @@ public void Setup() public void ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo(string fileExtension) { var assemblyInfoFile = "VersionAssemblyInfo." + fileExtension; - var fullPath = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fullPath = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); var variables = this.variableProvider.GetVariablesFor( SemanticVersion.Parse("1.0.0", RegexPatterns.Configuration.DefaultTagPrefixRegexPattern), EmptyConfigurationBuilder.New.Build(), 0); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, this.fileSystem); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, true, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, true, assemblyInfoFile)); this.fileSystem.File.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); } @@ -59,13 +59,13 @@ public void ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo(strin public void ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo(string fileExtension) { var assemblyInfoFile = FileSystemHelper.Path.Combine("src", "Project", "Properties", $"VersionAssemblyInfo.{fileExtension}"); - var fullPath = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fullPath = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); var variables = this.variableProvider.GetVariablesFor( SemanticVersion.Parse("1.0.0", RegexPatterns.Configuration.DefaultTagPrefixRegexPattern), EmptyConfigurationBuilder.New.Build(), 0 ); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, this.fileSystem); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, true, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, true, assemblyInfoFile)); this.fileSystem.File.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); } @@ -79,11 +79,11 @@ public void ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInf var variables = this.variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", RegexPatterns.Configuration.DefaultTagPrefixRegexPattern), EmptyConfigurationBuilder.New.Build(), 0); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, this.fileSystem); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, true, [.. assemblyInfoFiles])); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, true, [.. assemblyInfoFiles])); foreach (var item in assemblyInfoFiles) { - var fullPath = FileSystemHelper.Path.Combine(workingDir, item); + var fullPath = FileSystemHelper.Path.Combine(this.workingDir, item); this.fileSystem.File.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); } } @@ -94,13 +94,13 @@ public void ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInf public void ShouldNotCreateAssemblyInfoFileWhenNotExistsAndNotEnsureAssemblyInfo(string fileExtension) { var assemblyInfoFile = "NoVersionAssemblyInfo." + fileExtension; - var fullPath = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fullPath = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); var variables = this.variableProvider.GetVariablesFor( SemanticVersion.Parse("1.0.0", RegexPatterns.Configuration.DefaultTagPrefixRegexPattern), EmptyConfigurationBuilder.New.Build(), 0 ); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, this.fileSystem); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); this.fileSystem.File.Exists(fullPath).ShouldBeFalse(); } @@ -111,13 +111,13 @@ public void ShouldNotCreateAssemblyInfoFileForUnknownSourceCodeAndEnsureAssembly this.fileSystem = Substitute.For<IFileSystem>(); const string assemblyInfoFile = "VersionAssemblyInfo.js"; - var fullPath = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fullPath = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); var variables = this.variableProvider.GetVariablesFor( SemanticVersion.Parse("1.0.0", RegexPatterns.Configuration.DefaultTagPrefixRegexPattern), EmptyConfigurationBuilder.New.Build(), 0 ); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, this.fileSystem); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, true, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, true, assemblyInfoFile)); this.fileSystem.Received(1).File.WriteAllText(fullPath, Arg.Any<string>()); } @@ -133,9 +133,9 @@ public void ShouldStartSearchFromWorkingDirectory() ); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, this.fileSystem); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, [.. assemblyInfoFiles])); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, [.. assemblyInfoFiles])); - this.fileSystem.Received(1).Directory.EnumerateFiles(Arg.Is(workingDir), Arg.Any<string>(), Arg.Any<SearchOption>()); + this.fileSystem.Received(1).Directory.EnumerateFiles(Arg.Is(this.workingDir), Arg.Any<string>(), Arg.Any<SearchOption>()); } [TestCase("cs", "[assembly: AssemblyVersion(\"1.0.0.0\")]\r\n[assembly: AssemblyInformationalVersion(\"1.0.0.0\")]\r\n[assembly: AssemblyFileVersion(\"1.0.0.0\")]")] @@ -144,12 +144,12 @@ public void ShouldStartSearchFromWorkingDirectory() public void ShouldReplaceAssemblyVersion(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -164,12 +164,12 @@ public void ShouldReplaceAssemblyVersion(string fileExtension, string assemblyFi public void ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.None, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); assemblyFileContent = fs.File.ReadAllText(fileName); assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); @@ -182,12 +182,12 @@ public void ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone(string fileEx public void ShouldReplaceAssemblyVersionInRelativePath(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = FileSystemHelper.Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension); - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -202,12 +202,12 @@ public void ShouldReplaceAssemblyVersionInRelativePath(string fileExtension, str public void ShouldReplaceAssemblyVersionInRelativePathWithWhiteSpace(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = FileSystemHelper.Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension); - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -222,12 +222,12 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithWhiteSpace(string file public void ShouldReplaceAssemblyVersionWithStar(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -242,12 +242,12 @@ public void ShouldReplaceAssemblyVersionWithStar(string fileExtension, string as public void ShouldReplaceAssemblyVersionWithAttributeSuffix(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => !s.Contains("""AssemblyVersionAttribute("1.0.0.0")""") && @@ -265,12 +265,12 @@ public void ShouldReplaceAssemblyVersionWithAttributeSuffix(string fileExtension public void ShouldAddAssemblyVersionIfMissingFromInfoFile(string fileExtension) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile("", fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -285,12 +285,12 @@ public void ShouldAddAssemblyVersionIfMissingFromInfoFile(string fileExtension) public void ShouldReplaceAlreadySubstitutedValues(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -305,12 +305,12 @@ public void ShouldReplaceAlreadySubstitutedValues(string fileExtension, string a public void ShouldReplaceAssemblyVersionWhenCreatingAssemblyVersionFileAndEnsureAssemblyInfo(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.1.0")""") && @@ -325,12 +325,12 @@ public void ShouldReplaceAssemblyVersionWhenCreatingAssemblyVersionFileAndEnsure public void ShouldReplaceAssemblyVersionInRelativePathWithVariables(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = FileSystemHelper.Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension); - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -345,12 +345,12 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithVariables(string fileE public void ShouldReplaceAssemblyVersionInRelativePathWithVariablesAndWhiteSpace(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = FileSystemHelper.Path.Combine("Project", "src", "Properties", "AssemblyInfo." + fileExtension); - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); fs.Received().File.WriteAllText(fileName, Arg.Is<string>(s => s.Contains("""AssemblyVersion("2.3.0.0")""") && @@ -365,12 +365,12 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithVariablesAndWhiteSpace public void ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); assemblyFileContent = fs.File.ReadAllText(fileName); assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); @@ -383,12 +383,12 @@ public void ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile public void Issue1183ShouldAddFSharpAssemblyInformationalVersionBesideOtherAttributes(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); assemblyFileContent = fs.File.ReadAllText(fileName); assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); @@ -401,12 +401,12 @@ public void Issue1183ShouldAddFSharpAssemblyInformationalVersionBesideOtherAttri public void ShouldNotAddAssemblyInformationalVersionWhenVersionSchemeIsNone(string fileExtension, string assemblyFileContent) { var assemblyInfoFile = "AssemblyInfo." + fileExtension; - var fileName = FileSystemHelper.Path.Combine(workingDir, assemblyInfoFile); + var fileName = FileSystemHelper.Path.Combine(this.workingDir, assemblyInfoFile); VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.None, (fs, variables) => { using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(this.log, fs); - assemblyInfoFileUpdater.Execute(variables, new(workingDir, false, assemblyInfoFile)); + assemblyInfoFileUpdater.Execute(variables, new(this.workingDir, false, assemblyInfoFile)); assemblyFileContent = fs.File.ReadAllText(fileName); assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved", fileExtension))); diff --git a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs index 2e9cb44cb4..c2f919f79d 100644 --- a/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs +++ b/src/GitVersion.Output.Tests/Output/ProjectFileUpdaterTests.cs @@ -55,10 +55,10 @@ public void CanUpdateProjectFileWithSdkProjectFileXml(string sdk) </PropertyGroup> </Project> """; - var canUpdate = projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); + var canUpdate = this.projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); canUpdate.ShouldBe(true); - logMessages.ShouldBeEmpty(); + this.logMessages.ShouldBeEmpty(); } [TestCase($""" @@ -71,13 +71,13 @@ public void CanUpdateProjectFileWithSdkProjectFileXml(string sdk) """)] public void CannotUpdateProjectFileWithIncorrectProjectSdk(string xml) { - var canUpdate = projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); + var canUpdate = this.projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); canUpdate.ShouldBe(false); - logMessages.ShouldNotBeEmpty(); - logMessages.Count.ShouldBe(1); - logMessages[0].ShouldContain("Specified project file Sdk (SomeOtherProject.Sdk) is not supported, please ensure the project sdk starts with 'Microsoft.NET.Sdk' or 'Microsoft.Build.Sql'"); + this.logMessages.ShouldNotBeEmpty(); + this.logMessages.Count.ShouldBe(1); + this.logMessages[0].ShouldContain("Specified project file Sdk (SomeOtherProject.Sdk) is not supported, please ensure the project sdk starts with 'Microsoft.NET.Sdk' or 'Microsoft.Build.Sql'"); } [TestCase($""" @@ -90,13 +90,13 @@ public void CannotUpdateProjectFileWithIncorrectProjectSdk(string xml) """)] public void CannotUpdateProjectFileWithMissingProjectSdk(string xml) { - var canUpdate = projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); + var canUpdate = this.projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); canUpdate.ShouldBe(false); - logMessages.ShouldNotBeEmpty(); - logMessages.Count.ShouldBe(1); - logMessages[0].ShouldContain("Specified project file Sdk () is not supported, please ensure the project sdk starts with 'Microsoft.NET.Sdk' or 'Microsoft.Build.Sql'"); + this.logMessages.ShouldNotBeEmpty(); + this.logMessages.Count.ShouldBe(1); + this.logMessages[0].ShouldContain("Specified project file Sdk () is not supported, please ensure the project sdk starts with 'Microsoft.NET.Sdk' or 'Microsoft.Build.Sql'"); } [TestCase($""" @@ -110,13 +110,13 @@ public void CannotUpdateProjectFileWithMissingProjectSdk(string xml) """)] public void CannotUpdateProjectFileWithoutAssemblyInfoGeneration(string xml) { - var canUpdate = projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); + var canUpdate = this.projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); canUpdate.ShouldBe(false); - logMessages.ShouldNotBeEmpty(); - logMessages.Count.ShouldBe(1); - logMessages[0].ShouldContain("Project file specifies <GenerateAssemblyInfo>false</GenerateAssemblyInfo>: versions set in this project file will not affect the output artifacts"); + this.logMessages.ShouldNotBeEmpty(); + this.logMessages.Count.ShouldBe(1); + this.logMessages[0].ShouldContain("Project file specifies <GenerateAssemblyInfo>false</GenerateAssemblyInfo>: versions set in this project file will not affect the output artifacts"); } [TestCase(""" @@ -125,13 +125,13 @@ public void CannotUpdateProjectFileWithoutAssemblyInfoGeneration(string xml) """)] public void CannotUpdateProjectFileWithoutAPropertyGroup(string xml) { - var canUpdate = projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); + var canUpdate = this.projectFileUpdater.CanUpdateProjectFile(XElement.Parse(xml)); canUpdate.ShouldBe(false); - logMessages.ShouldNotBeEmpty(); - logMessages.Count.ShouldBe(1); - logMessages[0].ShouldContain("Unable to locate any <PropertyGroup> elements in specified project file. Are you sure it is in a correct format?"); + this.logMessages.ShouldNotBeEmpty(); + this.logMessages.Count.ShouldBe(1); + this.logMessages[0].ShouldContain("Unable to locate any <PropertyGroup> elements in specified project file. Are you sure it is in a correct format?"); } [TestCase($""" diff --git a/src/GitVersion.Output.Tests/Output/WixFileTests.cs b/src/GitVersion.Output.Tests/Output/WixFileTests.cs index c9beb0e71a..76ded1fd8c 100644 --- a/src/GitVersion.Output.Tests/Output/WixFileTests.cs +++ b/src/GitVersion.Output.Tests/Output/WixFileTests.cs @@ -15,10 +15,10 @@ internal class WixFileTests : TestBase private string workingDir = null!; [OneTimeSetUp] - public void OneTimeSetUp() => workingDir = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "WixFileTests"); + public void OneTimeSetUp() => this.workingDir = FileSystemHelper.Path.Combine(FileSystemHelper.Path.GetTempPath(), "WixFileTests"); [OneTimeTearDown] - public void OneTimeTearDown() => FileSystemHelper.Directory.DeleteDirectory(workingDir); + public void OneTimeTearDown() => FileSystemHelper.Directory.DeleteDirectory(this.workingDir); [SetUp] public void Setup() => ShouldlyConfiguration.ShouldMatchApprovedDefaults.LocateTestMethodUsingAttribute<TestAttribute>(); @@ -53,9 +53,9 @@ public void UpdateWixVersionFile() using var wixVersionFileUpdater = sp.GetRequiredService<IWixVersionFileUpdater>(); - wixVersionFileUpdater.Execute(versionVariables, new(workingDir)); + wixVersionFileUpdater.Execute(versionVariables, new(this.workingDir)); - var file = FileSystemHelper.Path.Combine(workingDir, WixVersionFileUpdater.WixVersionFileName); + var file = FileSystemHelper.Path.Combine(this.workingDir, WixVersionFileUpdater.WixVersionFileName); fileSystem .File.ReadAllText(file) .ShouldMatchApproved(c => c.SubFolder(FileSystemHelper.Path.Combine("Approved"))); @@ -95,14 +95,14 @@ public void UpdateWixVersionFileWhenFileAlreadyExists() using var wixVersionFileUpdater = sp.GetRequiredService<IWixVersionFileUpdater>(); // fake an already existing file - var file = FileSystemHelper.Path.Combine(workingDir, WixVersionFileUpdater.WixVersionFileName); - if (!fileSystem.Directory.Exists(workingDir)) + var file = FileSystemHelper.Path.Combine(this.workingDir, WixVersionFileUpdater.WixVersionFileName); + if (!fileSystem.Directory.Exists(this.workingDir)) { - fileSystem.Directory.CreateDirectory(workingDir); + fileSystem.Directory.CreateDirectory(this.workingDir); } fileSystem.File.WriteAllText(file, new('x', 1024 * 1024)); - wixVersionFileUpdater.Execute(versionVariables, new(workingDir)); + wixVersionFileUpdater.Execute(versionVariables, new(this.workingDir)); fileSystem .File.ReadAllText(file) diff --git a/src/GitVersion.Output/GitVersionOutputTool.cs b/src/GitVersion.Output/GitVersionOutputTool.cs index c792d00c81..a3c77598a3 100644 --- a/src/GitVersion.Output/GitVersionOutputTool.cs +++ b/src/GitVersion.Output/GitVersionOutputTool.cs @@ -27,22 +27,22 @@ public void OutputVariables(GitVersionVariables variables, bool updateBuildNumbe { using (this.outputGenerator) { - this.outputGenerator.Execute(variables, new OutputContext(gitVersionOptions.OutputFile, updateBuildNumber)); + this.outputGenerator.Execute(variables, new OutputContext(this.gitVersionOptions.OutputFile, updateBuildNumber)); } } public void UpdateAssemblyInfo(GitVersionVariables variables) { - var assemblyInfoContext = new AssemblyInfoContext(gitVersionOptions.WorkingDirectory, gitVersionOptions.AssemblySettingsInfo.EnsureAssemblyInfo, [.. gitVersionOptions.AssemblySettingsInfo.Files]); + var assemblyInfoContext = new AssemblyInfoContext(this.gitVersionOptions.WorkingDirectory, this.gitVersionOptions.AssemblySettingsInfo.EnsureAssemblyInfo, [.. this.gitVersionOptions.AssemblySettingsInfo.Files]); - if (gitVersionOptions.AssemblySettingsInfo.UpdateProjectFiles) + if (this.gitVersionOptions.AssemblySettingsInfo.UpdateProjectFiles) { using (this.projectFileUpdater) { this.projectFileUpdater.Execute(variables, assemblyInfoContext); } } - else if (gitVersionOptions.AssemblySettingsInfo.UpdateAssemblyInfo) + else if (this.gitVersionOptions.AssemblySettingsInfo.UpdateAssemblyInfo) { using (this.assemblyInfoFileUpdater) { @@ -64,7 +64,7 @@ public void GenerateGitVersionInformation(GitVersionVariables variables, FileWri { using (this.gitVersionInfoGenerator) { - this.gitVersionInfoGenerator.Execute(variables, new GitVersionInfoContext(gitVersionOptions.WorkingDirectory, fileWriteInfo.FileName, targetNamespace)); + this.gitVersionInfoGenerator.Execute(variables, new GitVersionInfoContext(this.gitVersionOptions.WorkingDirectory, fileWriteInfo.FileName, targetNamespace)); } } } diff --git a/src/GitVersion.Testing/Fixtures/RepositoryFixtureBase.cs b/src/GitVersion.Testing/Fixtures/RepositoryFixtureBase.cs index 805281f62e..297f1617c2 100644 --- a/src/GitVersion.Testing/Fixtures/RepositoryFixtureBase.cs +++ b/src/GitVersion.Testing/Fixtures/RepositoryFixtureBase.cs @@ -61,10 +61,10 @@ protected virtual void Dispose(bool disposing) // throw; } - this.SequenceDiagram.End(); + SequenceDiagram.End(); Console.WriteLine("**Visualisation of test:**"); Console.WriteLine(string.Empty); - Console.WriteLine(this.SequenceDiagram.GetDiagram()); + Console.WriteLine(SequenceDiagram.GetDiagram()); } public void Checkout(string branch) => Commands.Checkout(Repository, branch); @@ -86,26 +86,26 @@ public string MakeATaggedCommit(string tag) public void ApplyTag(string tag) { - this.SequenceDiagram.ApplyTag(tag, Repository.Head.FriendlyName); + SequenceDiagram.ApplyTag(tag, Repository.Head.FriendlyName); Repository.ApplyTag(tag); } public void CreateBranch(string branchName, string? @as = null) { - this.SequenceDiagram.BranchTo(branchName, Repository.Head.FriendlyName, @as); + SequenceDiagram.BranchTo(branchName, Repository.Head.FriendlyName, @as); Repository.CreateBranch(branchName); } public void BranchTo(string branchName, string? @as = null) { - this.SequenceDiagram.BranchTo(branchName, Repository.Head.FriendlyName, @as); + SequenceDiagram.BranchTo(branchName, Repository.Head.FriendlyName, @as); var branch = Repository.CreateBranch(branchName); Commands.Checkout(Repository, branch); } public void BranchToFromTag(string branchName, string fromTag, string onBranch, string? @as = null) { - this.SequenceDiagram.BranchToFromTag(branchName, fromTag, onBranch, @as); + SequenceDiagram.BranchToFromTag(branchName, fromTag, onBranch, @as); var branch = Repository.CreateBranch(branchName); Commands.Checkout(Repository, branch); } @@ -113,7 +113,7 @@ public void BranchToFromTag(string branchName, string fromTag, string onBranch, public string MakeACommit() { var to = Repository.Head.FriendlyName; - this.SequenceDiagram.MakeACommit(to); + SequenceDiagram.MakeACommit(to); var commit = Repository.MakeACommit(); return commit.Sha; } @@ -139,7 +139,7 @@ public void MakeACommit(string commitMsg) /// </summary> public void MergeNoFF(string mergeSource) { - this.SequenceDiagram.Merge(mergeSource, Repository.Head.FriendlyName); + SequenceDiagram.Merge(mergeSource, Repository.Head.FriendlyName); Repository.MergeNoFF(mergeSource, Generate.SignatureNow()); } diff --git a/src/GitVersion.Testing/Fixtures/SequenceDiagram.cs b/src/GitVersion.Testing/Fixtures/SequenceDiagram.cs index d56e7688e8..4e3fdb44ee 100644 --- a/src/GitVersion.Testing/Fixtures/SequenceDiagram.cs +++ b/src/GitVersion.Testing/Fixtures/SequenceDiagram.cs @@ -15,8 +15,8 @@ public class SequenceDiagram /// </summary> public SequenceDiagram() { - this.DiagramBuilder = new StringBuilder(); - this.DiagramBuilder.AppendLine("@startuml"); + DiagramBuilder = new StringBuilder(); + DiagramBuilder.AppendLine("@startuml"); } public StringBuilder DiagramBuilder { get; } @@ -24,17 +24,17 @@ public SequenceDiagram() /// <summary> /// Activates a branch/participant in the sequence diagram /// </summary> - public void Activate(string branch) => this.DiagramBuilder.AppendLineFormat("activate {0}", GetParticipant(branch)); + public void Activate(string branch) => DiagramBuilder.AppendLineFormat("activate {0}", GetParticipant(branch)); /// <summary> /// Deactivates a branch/participant in the sequence diagram /// </summary> - public void Deactivate(string branch) => this.DiagramBuilder.AppendLineFormat("deactivate {0}", GetParticipant(branch)); + public void Deactivate(string branch) => DiagramBuilder.AppendLineFormat("deactivate {0}", GetParticipant(branch)); /// <summary> /// Destroys a branch/participant in the sequence diagram /// </summary> - public void Destroy(string branch) => this.DiagramBuilder.AppendLineFormat("destroy {0}", GetParticipant(branch)); + public void Destroy(string branch) => DiagramBuilder.AppendLineFormat("destroy {0}", GetParticipant(branch)); /// <summary> /// Creates a participant in the sequence diagram @@ -44,21 +44,21 @@ public void Participant(string participant, string? @as = null) var cleanParticipant = ParticipantSanitizer.SanitizeParticipant(@as ?? participant); this.participants.Add(participant, cleanParticipant); if (participant == cleanParticipant) - this.DiagramBuilder.AppendLineFormat("participant {0}", participant); + DiagramBuilder.AppendLineFormat("participant {0}", participant); else - this.DiagramBuilder.AppendLineFormat("participant \"{0}\" as {1}", participant, cleanParticipant); + DiagramBuilder.AppendLineFormat("participant \"{0}\" as {1}", participant, cleanParticipant); } /// <summary> /// Appends a divider with specified text to the sequence diagram /// </summary> - public void Divider(string text) => this.DiagramBuilder.AppendLineFormat("== {0} ==", text); + public void Divider(string text) => DiagramBuilder.AppendLineFormat("== {0} ==", text); /// <summary> /// Appends a note over one or many participants to the sequence diagram /// </summary> public void NoteOver(string noteText, string startParticipant, string? endParticipant = null, string? prefix = null, string? color = null) => - this.DiagramBuilder.AppendLineFormat( + DiagramBuilder.AppendLineFormat( prefix + """ note over {0}{1}{2} {3} @@ -72,7 +72,7 @@ end note /// <summary> /// Appends applying a tag to the specified branch/participant to the sequence diagram /// </summary> - public void ApplyTag(string tag, string toBranch) => this.DiagramBuilder.AppendLineFormat("{0} -> {0}: tag {1}", GetParticipant(toBranch), tag); + public void ApplyTag(string tag, string toBranch) => DiagramBuilder.AppendLineFormat("{0} -> {0}: tag {1}", GetParticipant(toBranch), tag); /// <summary> /// Appends branching from a branch to another branch, @as can override the participant name @@ -81,11 +81,11 @@ public void BranchTo(string branchName, string currentName, string? @as) { if (!this.participants.ContainsKey(branchName)) { - this.DiagramBuilder.Append("create "); + DiagramBuilder.Append("create "); Participant(branchName, @as); } - this.DiagramBuilder.AppendLineFormat( + DiagramBuilder.AppendLineFormat( "{0} -> {1}: branch from {2}", GetParticipant(currentName), GetParticipant(branchName), currentName); @@ -98,32 +98,32 @@ public void BranchToFromTag(string branchName, string fromTag, string onBranch, { if (!this.participants.ContainsKey(branchName)) { - this.DiagramBuilder.Append("create "); + DiagramBuilder.Append("create "); Participant(branchName, @as); } - this.DiagramBuilder.AppendLineFormat("{0} -> {1}: branch from tag ({2})", GetParticipant(onBranch), GetParticipant(branchName), fromTag); + DiagramBuilder.AppendLineFormat("{0} -> {1}: branch from tag ({2})", GetParticipant(onBranch), GetParticipant(branchName), fromTag); } /// <summary> /// Appends a commit on the target participant/branch to the sequence diagram /// </summary> - public void MakeACommit(string toParticipant) => this.DiagramBuilder.AppendLineFormat("{0} -> {0}: commit", GetParticipant(toParticipant)); + public void MakeACommit(string toParticipant) => DiagramBuilder.AppendLineFormat("{0} -> {0}: commit", GetParticipant(toParticipant)); /// <summary> /// Append a merge to the sequence diagram /// </summary> - public void Merge(string from, string to) => this.DiagramBuilder.AppendLineFormat("{0} -> {1}: merge", GetParticipant(from), GetParticipant(to)); + public void Merge(string from, string to) => DiagramBuilder.AppendLineFormat("{0} -> {1}: merge", GetParticipant(from), GetParticipant(to)); public string GetParticipant(string branch) => this.participants.GetValueOrDefault(branch, branch); /// <summary> /// Ends the sequence diagram /// </summary> - public void End() => this.DiagramBuilder.AppendLine("@enduml"); + public void End() => DiagramBuilder.AppendLine("@enduml"); /// <summary> /// returns the plantUML representation of the Sequence Diagram /// </summary> - public string GetDiagram() => this.DiagramBuilder.ToString(); + public string GetDiagram() => DiagramBuilder.ToString(); } diff --git a/src/GitVersion.sln.DotSettings b/src/GitVersion.sln.DotSettings index 7f21c9ff09..c6c94efeb5 100644 --- a/src/GitVersion.sln.DotSettings +++ b/src/GitVersion.sln.DotSettings @@ -1,4 +1,4 @@ -<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> +<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/AutoCompleteBasicCompletion/@EntryValue">True</s:Boolean> @@ -196,17 +196,23 @@ <s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=GitVersion/@EntryIndexedValue"><?xml version="1.0" encoding="utf-16"?><Profile name="GitVersion"><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSUseVar><BehavourStyle>CAN_CHANGE_TO_IMPLICIT</BehavourStyle><LocalVariableStyle>ALWAYS_IMPLICIT</LocalVariableStyle><ForeachVariableStyle>ALWAYS_IMPLICIT</ForeachVariableStyle></CSUseVar><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSReformatCode>True</CSReformatCode><CSReorderTypeMembers>True</CSReorderTypeMembers><JsInsertSemicolon>True</JsInsertSemicolon><JsReformatCode>True</JsReformatCode><CssReformatCode>True</CssReformatCode><CSArrangeThisQualifier>True</CSArrangeThisQualifier><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><HtmlReformatCode>True</HtmlReformatCode><CSShortenReferences>True</CSShortenReferences><CSharpFormatDocComments>True</CSharpFormatDocComments><CssAlphabetizeProperties>True</CssAlphabetizeProperties><CSCodeStyleAttributes ArrangeVarStyle="True" ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" ArrangeArgumentsStyle="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeCodeBodyStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" /><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><IDEA_SETTINGS>&lt;profile version="1.0"&gt; &lt;option name="myName" value="GitVersion" /&gt; &lt;/profile&gt;</IDEA_SETTINGS><RIDER_SETTINGS>&lt;profile&gt; + &lt;Language id=""&gt; + &lt;OptimizeImports&gt;false&lt;/OptimizeImports&gt; + &lt;/Language&gt; + &lt;Language id="CMake"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; &lt;Language id="CSS"&gt; - &lt;Rearrange&gt;true&lt;/Rearrange&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; &lt;/Language&gt; &lt;Language id="EditorConfig"&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; &lt;/Language&gt; &lt;Language id="HTML"&gt; - &lt;Rearrange&gt;true&lt;/Rearrange&gt; - &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; &lt;/Language&gt; &lt;Language id="HTTP Request"&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; @@ -224,9 +230,9 @@ &lt;Reformat&gt;true&lt;/Reformat&gt; &lt;/Language&gt; &lt;Language id="JavaScript"&gt; - &lt;Rearrange&gt;true&lt;/Rearrange&gt; - &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; &lt;/Language&gt; &lt;Language id="Markdown"&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; @@ -237,18 +243,24 @@ &lt;Language id="RELAX-NG"&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; &lt;/Language&gt; + &lt;Language id="Razor"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; &lt;Language id="SQL"&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; &lt;/Language&gt; + &lt;Language id="VueExpr"&gt; + &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;/Language&gt; &lt;Language id="XML"&gt; - &lt;Rearrange&gt;true&lt;/Rearrange&gt; - &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; + &lt;OptimizeImports&gt;true&lt;/OptimizeImports&gt; + &lt;Rearrange&gt;true&lt;/Rearrange&gt; &lt;/Language&gt; &lt;Language id="yaml"&gt; &lt;Reformat&gt;true&lt;/Reformat&gt; &lt;/Language&gt; -&lt;/profile&gt;</RIDER_SETTINGS></Profile></s:String> +&lt;/profile&gt;</RIDER_SETTINGS><UpgradedBackendToFrontendHtml>True</UpgradedBackendToFrontendHtml><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly></Profile></s:String> <s:String x:Key="/Default/CodeStyle/CodeCleanup/RecentlyUsedProfile/@EntryValue">Default: Reformat Code</s:String> <s:String x:Key="/Default/CodeStyle/CodeCleanup/SilentCleanupProfile/@EntryValue">GitVersion</s:String> <s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/EXPLICIT_INTERNAL_MODIFIER/@EntryValue">False</s:Boolean> From 52e3f59c774d066106dc971337ce3d952842b3e7 Mon Sep 17 00:00:00 2001 From: Artur Stolear <artur.stolear@gmail.com> Date: Sun, 28 Jun 2026 04:04:14 +0200 Subject: [PATCH 358/358] style: remove redundant .NET qualification properties and disable ReSharper this qualifier highlighting Consolidate editor configuration by removing duplicate qualification rules and ensuring ReSharper aligns with the project's preference for avoiding "this." qualifiers. --- .editorconfig | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/.editorconfig b/.editorconfig index b0bf5f3a30..c6ada21b10 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,12 +10,6 @@ end_of_line = lf trim_trailing_whitespace = true insert_final_newline = true -# Microsoft .NET properties -dotnet_style_qualification_for_event = false:none -dotnet_style_qualification_for_field = false:none -dotnet_style_qualification_for_method = false:none -dotnet_style_qualification_for_property = false:none - [{*.yml,*.xml}] indent_size = 2 @@ -25,12 +19,6 @@ indent_size = 2 dotnet_separate_import_directive_groups = false dotnet_sort_system_directives_first = true -# Avoid "this." and "Me." if not necessary -dotnet_style_qualification_for_field = false:silent -dotnet_style_qualification_for_property = false:silent -dotnet_style_qualification_for_method = false:silent -dotnet_style_qualification_for_event = false:silent - # Use language keywords instead of framework type names for type references dotnet_style_predefined_type_for_locals_parameters_members = true:warning dotnet_style_predefined_type_for_member_access = true:warning @@ -186,6 +174,8 @@ dotnet_diagnostic.S4136.severity = none xml_space_before_self_closing = true +resharper_arrange_this_qualifier_highlighting = none + resharper_arrange_object_creation_when_type_not_evident_highlighting = none resharper_unused_auto_property_accessor_global_highlighting = none