diff --git a/new-cli/GitVersion.Common/GitVersion.Common.csproj b/new-cli/GitVersion.Common/GitVersion.Common.csproj
index a8d47b764c..f2507e4fbd 100644
--- a/new-cli/GitVersion.Common/GitVersion.Common.csproj
+++ b/new-cli/GitVersion.Common/GitVersion.Common.csproj
@@ -3,64 +3,64 @@
-
+
Git\AuthenticationInfo.cs
-
+
Git\CommitFilter.cs
-
+
Git\IBranch.cs
-
+
Git\IBranchCollection.cs
-
+
Git\ICommit.cs
-
+
Git\ICommitCollection.cs
-
+
Git\IGitObject.cs
-
+
Git\IGitRepository.cs
-
+
Git\INamedReference.cs
-
+
Git\IObjectId.cs
-
+
Git\IReference.cs
-
+
Git\IReferenceCollection.cs
-
+
Git\IRefSpec.cs
-
+
Git\IRefSpecCollection.cs
-
+
Git\IRemote.cs
-
+
Git\IRemoteCollection.cs
-
+
Git\ITag.cs
-
+
Git\ITagCollection.cs
-
+
Git\ReferenceName.cs
-
+
Git\RefSpecDirection.cs
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 45ee37a73e..81cab381df 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -32,7 +32,7 @@
true
false
- false
+ true
true
diff --git a/src/GitVersion.Abstractions/Extensions/GitVersionVariablesExtensions.cs b/src/GitVersion.Abstractions/Extensions/GitVersionVariablesExtensions.cs
deleted file mode 100644
index 402a2de16f..0000000000
--- a/src/GitVersion.Abstractions/Extensions/GitVersionVariablesExtensions.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-using System.Text.Encodings.Web;
-using GitVersion.OutputVariables;
-
-namespace GitVersion.Extensions;
-
-public static class GitVersionVariablesExtensions
-{
- public static string ToJsonString(this GitVersionVariables gitVersionVariables)
- {
- var variablesType = typeof(VersionVariablesJsonModel);
- var variables = new VersionVariablesJsonModel();
-
- foreach (var (key, value) in gitVersionVariables.OrderBy(x => x.Key))
- {
- var propertyInfo = variablesType.GetProperty(key);
- propertyInfo?.SetValue(variables, ChangeType(value, propertyInfo.PropertyType));
- }
-
- var serializeOptions = GetJsonSerializerOptions();
-
- return JsonSerializer.Serialize(variables, serializeOptions);
- }
-
- public static JsonSerializerOptions GetJsonSerializerOptions()
- {
- var serializeOptions = new JsonSerializerOptions
- {
- WriteIndented = true,
- Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
- Converters =
- {
- new VersionVariablesJsonStringConverter()
- }
- };
- return serializeOptions;
- }
-
- private static object? ChangeType(object? value, Type type)
- {
- if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>))
- {
- if (value == null || value.ToString()?.Length == 0)
- {
- return null;
- }
-
- type = Nullable.GetUnderlyingType(type)!;
- }
-
- return Convert.ChangeType(value, type);
- }
-}
diff --git a/src/GitVersion.Abstractions/GitVersion.Abstractions.csproj b/src/GitVersion.Abstractions/GitVersion.Abstractions.csproj
deleted file mode 100644
index da0548d063..0000000000
--- a/src/GitVersion.Abstractions/GitVersion.Abstractions.csproj
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
- GitVersion.Abstractions
- GitVersion
- Derives SemVer information from a repository following GitFlow or GitHubFlow. This is the Core library which both GitVersion cli and Task use allowing programatic usage of GitVersion.
-
- $(AssemblyName)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/GitVersion.Abstractions/PublicAPI.Shipped.txt b/src/GitVersion.Abstractions/PublicAPI.Shipped.txt
deleted file mode 100644
index 7dc5c58110..0000000000
--- a/src/GitVersion.Abstractions/PublicAPI.Shipped.txt
+++ /dev/null
@@ -1 +0,0 @@
-#nullable enable
diff --git a/src/GitVersion.Abstractions/PublicAPI.Unshipped.txt b/src/GitVersion.Abstractions/PublicAPI.Unshipped.txt
deleted file mode 100644
index 35dfa191a5..0000000000
--- a/src/GitVersion.Abstractions/PublicAPI.Unshipped.txt
+++ /dev/null
@@ -1,731 +0,0 @@
-#nullable enable
-GitVersion.Agents.BuildAgentBase
-GitVersion.Agents.BuildAgentBase.BuildAgentBase(GitVersion.IEnvironment! environment, GitVersion.Logging.ILog! log) -> void
-GitVersion.Agents.BuildAgentBase.Environment -> GitVersion.IEnvironment!
-GitVersion.Agents.BuildAgentBase.GenerateBuildLogOutput(GitVersion.OutputVariables.GitVersionVariables! variables) -> System.Collections.Generic.IEnumerable!
-GitVersion.Agents.IBuildAgent
-GitVersion.Agents.IBuildAgent.CanApplyToCurrentContext() -> bool
-GitVersion.Agents.IBuildAgent.GetCurrentBranch(bool usingDynamicRepos) -> string?
-GitVersion.Agents.IBuildAgent.IsDefault.get -> bool
-GitVersion.Agents.IBuildAgent.PreventFetch() -> bool
-GitVersion.Agents.IBuildAgent.ShouldCleanUpRemotes() -> bool
-GitVersion.Agents.IBuildAgent.WriteIntegration(System.Action! writer, GitVersion.OutputVariables.GitVersionVariables! variables, bool updateBuildNumber = true) -> void
-GitVersion.Agents.IBuildAgentResolver
-GitVersion.Agents.IBuildAgentResolver.Resolve() -> GitVersion.Agents.ICurrentBuildAgent!
-GitVersion.Agents.ICurrentBuildAgent
-GitVersion.AssemblySettingsInfo
-GitVersion.AssemblySettingsInfo.AssemblySettingsInfo() -> void
-GitVersion.AssemblySettingsInfo.EnsureAssemblyInfo -> bool
-GitVersion.AssemblySettingsInfo.Files -> System.Collections.Generic.ISet!
-GitVersion.AssemblySettingsInfo.UpdateAssemblyInfo -> bool
-GitVersion.AssemblySettingsInfo.UpdateProjectFiles -> bool
-GitVersion.Attributes.JsonPropertyDescriptionAttribute
-GitVersion.Attributes.JsonPropertyDescriptionAttribute.Description.get -> string!
-GitVersion.Attributes.JsonPropertyDescriptionAttribute.JsonPropertyDescriptionAttribute(string! description) -> void
-GitVersion.Attributes.JsonPropertyPatternAttribute
-GitVersion.Attributes.JsonPropertyPatternAttribute.Format.get -> GitVersion.Attributes.PatternFormat
-GitVersion.Attributes.JsonPropertyPatternAttribute.JsonPropertyPatternAttribute(string! pattern, GitVersion.Attributes.PatternFormat format = GitVersion.Attributes.PatternFormat.Regex) -> void
-GitVersion.Attributes.JsonPropertyPatternAttribute.Pattern.get -> string!
-GitVersion.Attributes.PatternFormat
-GitVersion.Attributes.PatternFormat.DateTime = 1 -> GitVersion.Attributes.PatternFormat
-GitVersion.Attributes.PatternFormat.Regex = 0 -> GitVersion.Attributes.PatternFormat
-GitVersion.AuthenticationInfo
-GitVersion.AuthenticationInfo.AuthenticationInfo() -> void
-GitVersion.AuthenticationInfo.Password.get -> string?
-GitVersion.AuthenticationInfo.Password.set -> void
-GitVersion.AuthenticationInfo.Token.get -> string?
-GitVersion.AuthenticationInfo.Token.set -> void
-GitVersion.AuthenticationInfo.Username.get -> string?
-GitVersion.AuthenticationInfo.Username.set -> void
-GitVersion.BranchCommit
-GitVersion.BranchCommit.Branch.get -> GitVersion.IBranch!
-GitVersion.BranchCommit.BranchCommit() -> void
-GitVersion.BranchCommit.BranchCommit(GitVersion.ICommit! commit, GitVersion.IBranch! branch) -> void
-GitVersion.BranchCommit.Commit.get -> GitVersion.ICommit!
-GitVersion.BranchCommit.Equals(GitVersion.BranchCommit? other) -> bool
-GitVersion.BugException
-GitVersion.BugException.BugException() -> void
-GitVersion.BugException.BugException(string! message) -> void
-GitVersion.BugException.BugException(string? message, System.Exception? innerException) -> void
-GitVersion.CommitFilter
-GitVersion.CommitFilter.CommitFilter() -> void
-GitVersion.CommitFilter.ExcludeReachableFrom.get -> object?
-GitVersion.CommitFilter.ExcludeReachableFrom.set -> void
-GitVersion.CommitFilter.FirstParentOnly.get -> bool
-GitVersion.CommitFilter.FirstParentOnly.set -> void
-GitVersion.CommitFilter.IncludeReachableFrom.get -> object?
-GitVersion.CommitFilter.IncludeReachableFrom.set -> void
-GitVersion.CommitFilter.SortBy.get -> GitVersion.CommitSortStrategies
-GitVersion.CommitFilter.SortBy.set -> void
-GitVersion.CommitSortStrategies
-GitVersion.CommitSortStrategies.None = 0 -> GitVersion.CommitSortStrategies
-GitVersion.CommitSortStrategies.Reverse = 4 -> GitVersion.CommitSortStrategies
-GitVersion.CommitSortStrategies.Time = 2 -> GitVersion.CommitSortStrategies
-GitVersion.CommitSortStrategies.Topological = 1 -> GitVersion.CommitSortStrategies
-GitVersion.Common.IRepositoryStore
-GitVersion.Common.IRepositoryStore.ExcludingBranches(System.Collections.Generic.IEnumerable! branchesToExclude) -> System.Collections.Generic.IEnumerable!
-GitVersion.Common.IRepositoryStore.FindBranch(string? branchName) -> GitVersion.IBranch?
-GitVersion.Common.IRepositoryStore.FindCommitBranchWasBranchedFrom(GitVersion.IBranch? branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, params GitVersion.IBranch![]! excludedBranches) -> GitVersion.BranchCommit
-GitVersion.Common.IRepositoryStore.FindCommitBranchesWasBranchedFrom(GitVersion.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, System.Collections.Generic.IEnumerable! excludedBranches) -> System.Collections.Generic.IEnumerable!
-GitVersion.Common.IRepositoryStore.FindCommitBranchesWasBranchedFrom(GitVersion.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, params GitVersion.IBranch![]! excludedBranches) -> System.Collections.Generic.IEnumerable!
-GitVersion.Common.IRepositoryStore.FindMainBranch(GitVersion.Configuration.IGitVersionConfiguration! configuration) -> GitVersion.IBranch?
-GitVersion.Common.IRepositoryStore.FindMainlineBranches(GitVersion.Configuration.IGitVersionConfiguration! configuration) -> System.Collections.Generic.IEnumerable!
-GitVersion.Common.IRepositoryStore.FindMergeBase(GitVersion.IBranch? branch, GitVersion.IBranch? otherBranch) -> GitVersion.ICommit?
-GitVersion.Common.IRepositoryStore.FindMergeBase(GitVersion.ICommit! commit, GitVersion.ICommit! mainlineTip) -> GitVersion.ICommit?
-GitVersion.Common.IRepositoryStore.GetBranchesContainingCommit(GitVersion.ICommit? commit, System.Collections.Generic.IEnumerable? branches = null, bool onlyTrackedBranches = false) -> System.Collections.Generic.IEnumerable!
-GitVersion.Common.IRepositoryStore.GetCommitLog(GitVersion.ICommit? baseVersionSource, GitVersion.ICommit? currentCommit) -> System.Collections.Generic.IEnumerable!
-GitVersion.Common.IRepositoryStore.GetCurrentCommit(GitVersion.IBranch! currentBranch, string? commitId) -> GitVersion.ICommit?
-GitVersion.Common.IRepositoryStore.GetCurrentCommitTaggedVersion(GitVersion.ICommit? commit, string? tagPrefix, GitVersion.SemanticVersionFormat format, bool handleDetachedBranch) -> GitVersion.SemanticVersion?
-GitVersion.Common.IRepositoryStore.GetMainlineBranches(GitVersion.ICommit! commit, GitVersion.Configuration.IGitVersionConfiguration! configuration) -> System.Collections.Generic.IDictionary!>!
-GitVersion.Common.IRepositoryStore.GetMainlineCommitLog(GitVersion.ICommit? baseVersionSource, GitVersion.ICommit? mainlineTip) -> System.Collections.Generic.IEnumerable!
-GitVersion.Common.IRepositoryStore.GetMergeBaseCommits(GitVersion.ICommit? mergeCommit, GitVersion.ICommit? mergedHead, GitVersion.ICommit? findMergeBase) -> System.Collections.Generic.IEnumerable!
-GitVersion.Common.IRepositoryStore.GetNumberOfUncommittedChanges() -> int
-GitVersion.Common.IRepositoryStore.GetReleaseBranches(System.Collections.Generic.IEnumerable>! releaseBranchConfig) -> System.Collections.Generic.IEnumerable!
-GitVersion.Common.IRepositoryStore.GetSourceBranches(GitVersion.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, System.Collections.Generic.IEnumerable! excludedBranches) -> System.Collections.Generic.IEnumerable!
-GitVersion.Common.IRepositoryStore.GetSourceBranches(GitVersion.IBranch! branch, GitVersion.Configuration.IGitVersionConfiguration! configuration, params GitVersion.IBranch![]! excludedBranches) -> System.Collections.Generic.IEnumerable!
-GitVersion.Common.IRepositoryStore.GetTaggedSemanticVersions(string? labelPrefix, GitVersion.SemanticVersionFormat format) -> System.Collections.Generic.IReadOnlyList!
-GitVersion.Common.IRepositoryStore.GetTaggedSemanticVersionsOnBranch(GitVersion.IBranch! branch, string? labelPrefix, GitVersion.SemanticVersionFormat format) -> System.Collections.Generic.IReadOnlyList!
-GitVersion.Common.IRepositoryStore.GetTargetBranch(string? targetBranchName) -> GitVersion.IBranch!
-GitVersion.Common.IRepositoryStore.GetVersionTagsOnBranch(GitVersion.IBranch! branch, string? labelPrefix, GitVersion.SemanticVersionFormat format) -> System.Collections.Generic.IEnumerable!
-GitVersion.Common.IRepositoryStore.IsCommitOnBranch(GitVersion.ICommit? baseVersionSource, GitVersion.IBranch! branch, GitVersion.ICommit! firstMatchingCommit) -> bool
-GitVersion.Configuration.IBranchConfiguration
-GitVersion.Configuration.IBranchConfiguration.CommitMessageIncrementing.get -> GitVersion.VersionCalculation.CommitMessageIncrementMode?
-GitVersion.Configuration.IBranchConfiguration.Increment.get -> GitVersion.IncrementStrategy
-GitVersion.Configuration.IBranchConfiguration.Inherit(GitVersion.Configuration.IBranchConfiguration! configuration) -> GitVersion.Configuration.IBranchConfiguration!
-GitVersion.Configuration.IBranchConfiguration.IsMainline.get -> bool?
-GitVersion.Configuration.IBranchConfiguration.IsMatch(string! branchName) -> bool
-GitVersion.Configuration.IBranchConfiguration.IsReleaseBranch.get -> bool?
-GitVersion.Configuration.IBranchConfiguration.IsSourceBranchFor.get -> System.Collections.Generic.IReadOnlyCollection!
-GitVersion.Configuration.IBranchConfiguration.Label.get -> string?
-GitVersion.Configuration.IBranchConfiguration.LabelNumberPattern.get -> string?
-GitVersion.Configuration.IBranchConfiguration.PreReleaseWeight.get -> int?
-GitVersion.Configuration.IBranchConfiguration.PreventIncrementOfMergedBranchVersion.get -> bool?
-GitVersion.Configuration.IBranchConfiguration.RegularExpression.get -> string?
-GitVersion.Configuration.IBranchConfiguration.SourceBranches.get -> System.Collections.Generic.IReadOnlyCollection!
-GitVersion.Configuration.IBranchConfiguration.TrackMergeMessage.get -> bool?
-GitVersion.Configuration.IBranchConfiguration.TrackMergeTarget.get -> bool?
-GitVersion.Configuration.IBranchConfiguration.TracksReleaseBranches.get -> bool?
-GitVersion.Configuration.IBranchConfiguration.VersioningMode.get -> GitVersion.VersionCalculation.VersioningMode?
-GitVersion.Configuration.IConfigurationFileLocator
-GitVersion.Configuration.IConfigurationFileLocator.ReadConfiguration(string? configFilePath) -> GitVersion.Configuration.IGitVersionConfiguration!
-GitVersion.Configuration.IConfigurationFileLocator.ReadOverrideConfiguration(string? configFilePath) -> System.Collections.Generic.IReadOnlyDictionary