Skip to content

Commit

Permalink
Merge pull request #3790 from arturcic/main
Browse files Browse the repository at this point in the history
Extract GitVersion Configuration into a separate project
  • Loading branch information
arturcic committed Nov 20, 2023
2 parents 3f9fc42 + ad16f2a commit 1004b75
Show file tree
Hide file tree
Showing 78 changed files with 103 additions and 45 deletions.
1 change: 1 addition & 0 deletions src/GitVersion.App.Tests/GitVersion.App.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\GitVersion.Configuration\GitVersion.Configuration.csproj" />
<ProjectReference Include="..\GitVersion.Core\GitVersion.Core.csproj" />
<ProjectReference Include="..\GitVersion.App\GitVersion.App.csproj" />
</ItemGroup>
Expand Down
1 change: 1 addition & 0 deletions src/GitVersion.App/GitVersion.App.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

<ItemGroup>
<ProjectReference Include="..\GitVersion.BuildAgents\GitVersion.BuildAgents.csproj" />
<ProjectReference Include="..\GitVersion.Configuration\GitVersion.Configuration.csproj" />
<ProjectReference Include="..\GitVersion.LibGit2Sharp\GitVersion.LibGit2Sharp.csproj" />
<ProjectReference Include="..\GitVersion.Core\GitVersion.Core.csproj" />
<ProjectReference Include="..\GitVersion.Output\GitVersion.Output.csproj" />
Expand Down
2 changes: 2 additions & 0 deletions src/GitVersion.App/Program.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using GitVersion.Agents;
using GitVersion.Configuration;
using GitVersion.Extensions;
using GitVersion.Output;
using Microsoft.Extensions.Configuration;
Expand Down Expand Up @@ -26,6 +27,7 @@ private IHostBuilder CreateHostBuilder(string[] args) =>
services.AddModule(new GitVersionCoreModule());
services.AddModule(new GitVersionLibGit2SharpModule());
services.AddModule(new GitVersionBuildAgentsModule());
services.AddModule(new GitVersionConfigurationModule());
services.AddModule(new GitVersionOutputModule());
services.AddModule(new GitVersionAppModule());
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">

<ItemGroup>
<ProjectReference Include="..\GitVersion.Configuration\GitVersion.Configuration.csproj" />
<ProjectReference Include="..\GitVersion.Core.Tests\GitVersion.Core.Tests.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -98,4 +98,11 @@ public virtual IBranchConfiguration Inherit(IBranchConfiguration configuration)
PreReleaseWeight = PreReleaseWeight ?? configuration.PreReleaseWeight
};
}

public IBranchConfiguration Empty() => new BranchConfiguration
{
RegularExpression = string.Empty,
Label = ConfigurationConstants.BranchNamePlaceholder,
Increment = IncrementStrategy.Inherit
};
}
30 changes: 30 additions & 0 deletions src/GitVersion.Configuration/GitVersion.Configuration.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<ProjectReference Include="..\GitVersion.Core\GitVersion.Core.csproj"/>
</ItemGroup>

<ItemGroup>
<PackageReference Include="YamlDotNet" />
</ItemGroup>

<ItemGroup>
<EmbeddedResource Include="SupportedWorkflows\GitFlow\v1.yml" />
<EmbeddedResource Include="SupportedWorkflows\GitHubFlow\v1.yml" />
</ItemGroup>

<ItemGroup>
<InternalsVisibleTo Include="schema" />
<InternalsVisibleTo Include="gitversion" />
<InternalsVisibleTo Include="GitVersion.App" />
<InternalsVisibleTo Include="GitVersion.LibGit2Sharp" />
<InternalsVisibleTo Include="GitVersion.MsBuild" />
<InternalsVisibleTo Include="GitVersion.Output" />

<InternalsVisibleTo Include="GitVersion.BuildAgents.Tests"/>
<InternalsVisibleTo Include="GitVersion.Core.Tests" />
<InternalsVisibleTo Include="GitVersion.Configuration.Tests" />
<InternalsVisibleTo Include="GitVersion.Output.Tests" />
<InternalsVisibleTo Include="GitVersion.App.Tests" />
<InternalsVisibleTo Include="GitVersion.MsBuild.Tests" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
using GitVersion.Configuration.Init;
using GitVersion.Extensions;
using GitVersion.VersionCalculation.Caching;
using Microsoft.Extensions.DependencyInjection;

namespace GitVersion.Configuration;

public class ConfigurationModule : IGitVersionModule
public class GitVersionConfigurationModule : IGitVersionModule
{
public void RegisterTypes(IServiceCollection services)
{
services.AddModule(new GitVersionInitModule());

services.AddSingleton<IGitVersionCacheKeyFactory, GitVersionCacheKeyFactory>();
services.AddSingleton<IConfigurationProvider, ConfigurationProvider>();
services.AddSingleton<IConfigurationFileLocator, ConfigurationFileLocator>();
}
Expand Down
1 change: 1 addition & 0 deletions src/GitVersion.Configuration/PublicAPI.Shipped.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#nullable enable
12 changes: 12 additions & 0 deletions src/GitVersion.Configuration/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#nullable enable
GitVersion.Configuration.ConfigurationException
GitVersion.Configuration.ConfigurationException.ConfigurationException() -> void
GitVersion.Configuration.ConfigurationException.ConfigurationException(string! message, System.Exception! innerException) -> void
GitVersion.Configuration.ConfigurationException.ConfigurationException(string! messageFormat, params object![]! args) -> void
GitVersion.Configuration.ConfigurationException.ConfigurationException(string! msg) -> void
GitVersion.Configuration.GitVersionConfigurationModule
GitVersion.Configuration.GitVersionConfigurationModule.GitVersionConfigurationModule() -> void
GitVersion.Configuration.GitVersionConfigurationModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void
GitVersion.Configuration.Init.GitVersionInitModule
GitVersion.Configuration.Init.GitVersionInitModule.GitVersionInitModule() -> void
GitVersion.Configuration.Init.GitVersionInitModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void
1 change: 1 addition & 0 deletions src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\GitVersion.BuildAgents\GitVersion.BuildAgents.csproj" />
<ProjectReference Include="..\GitVersion.Configuration\GitVersion.Configuration.csproj" />
<ProjectReference Include="..\GitVersion.LibGit2Sharp\GitVersion.LibGit2Sharp.csproj" />
<ProjectReference Include="..\GitVersion.Core\GitVersion.Core.csproj" />
<ProjectReference Include="..\GitVersion.Output\GitVersion.Output.csproj" />
Expand Down
2 changes: 2 additions & 0 deletions src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using GitVersion.Agents;
using GitVersion.Configuration;
using GitVersion.Extensions;
using GitVersion.Logging;
using GitVersion.Output;
Expand All @@ -13,6 +14,7 @@ public void RegisterTypes(IServiceCollection services)
services.AddModule(new GitVersionLibGit2SharpModule());
services.AddModule(new GitVersionBuildAgentsModule());
services.AddModule(new GitVersionOutputModule());
services.AddModule(new GitVersionConfigurationModule());
services.AddModule(new GitVersionCoreModule());

services.AddSingleton<IFileSystem, TestFileSystem>();
Expand Down
2 changes: 2 additions & 0 deletions src/GitVersion.Core/Configuration/IBranchConfiguration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,7 @@ public bool IsMatch(string branchName)

IReadOnlyCollection<string> IsSourceBranchFor { get; }

IBranchConfiguration Empty();

IBranchConfiguration Inherit(IBranchConfiguration configuration);
}
15 changes: 0 additions & 15 deletions src/GitVersion.Core/Configuration/IgnoreConfigurationExtensions.cs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Text.RegularExpressions;
using GitVersion.Extensions;
using GitVersion.VersionCalculation;

namespace GitVersion.Configuration;

Expand All @@ -20,15 +21,18 @@ public static EffectiveConfiguration GetEffectiveConfiguration(this IGitVersionC
public static IBranchConfiguration GetBranchConfiguration(this IGitVersionConfiguration configuration, ReferenceName branchName)
{
var branchConfiguration = GetBranchConfigurations(configuration, branchName.WithoutOrigin).FirstOrDefault();
branchConfiguration ??= new BranchConfiguration
{
RegularExpression = string.Empty,
Label = ConfigurationConstants.BranchNamePlaceholder,
Increment = IncrementStrategy.Inherit
};
branchConfiguration ??= configuration.Empty();
return branchConfiguration;
}

public static IEnumerable<IVersionFilter> ToFilters(this IIgnoreConfiguration source)
{
source.NotNull();

if (source.Shas.Any()) yield return new ShaVersionFilter(source.Shas);
if (source.Before.HasValue) yield return new MinDateVersionFilter(source.Before.Value);
}

private static IEnumerable<IBranchConfiguration> GetBranchConfigurations(IGitVersionConfiguration configuration, string branchName)
{
IBranchConfiguration? unknownBranchConfiguration = null;
Expand Down
7 changes: 2 additions & 5 deletions src/GitVersion.Core/GitVersion.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,6 @@
<Product>$(AssemblyName)</Product>
</PropertyGroup>

<ItemGroup>
<EmbeddedResource Include="Configuration\SupportedWorkflows\GitFlow\v1.yml" />
<EmbeddedResource Include="Configuration\SupportedWorkflows\GitHubFlow\v1.yml" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Polly" />
<PackageReference Include="System.Net.Requests" />
Expand All @@ -30,11 +25,13 @@
<InternalsVisibleTo Include="schema" />
<InternalsVisibleTo Include="gitversion" />
<InternalsVisibleTo Include="GitVersion.App" />
<InternalsVisibleTo Include="GitVersion.Configuration" />
<InternalsVisibleTo Include="GitVersion.LibGit2Sharp" />
<InternalsVisibleTo Include="GitVersion.MsBuild" />
<InternalsVisibleTo Include="GitVersion.Output" />

<InternalsVisibleTo Include="GitVersion.BuildAgents.Tests"/>
<InternalsVisibleTo Include="GitVersion.Configuration.Tests" />
<InternalsVisibleTo Include="GitVersion.Core.Tests" />
<InternalsVisibleTo Include="GitVersion.Output.Tests" />
<InternalsVisibleTo Include="GitVersion.App.Tests" />
Expand Down
3 changes: 0 additions & 3 deletions src/GitVersion.Core/GitVersionCoreModule.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using GitVersion.Common;
using GitVersion.Configuration;
using GitVersion.Extensions;
using GitVersion.VersionCalculation;
using GitVersion.VersionCalculation.Caching;
Expand All @@ -13,7 +12,6 @@ public class GitVersionCoreModule : IGitVersionModule
public void RegisterTypes(IServiceCollection services)
{
services.AddSingleton<IGitVersionCache, GitVersionCache>();
services.AddSingleton<IGitVersionCacheKeyFactory, GitVersionCacheKeyFactory>();

services.AddSingleton<IGitVersionCalculateTool, GitVersionCalculateTool>();

Expand All @@ -29,7 +27,6 @@ public void RegisterTypes(IServiceCollection services)
});

services.AddModule(new GitVersionCommonModule());
services.AddModule(new ConfigurationModule());
services.AddModule(new VersionCalculationModule());
}
}
13 changes: 2 additions & 11 deletions src/GitVersion.Core/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -88,15 +88,7 @@ GitVersion.Common.IRepositoryStore.GetTaggedSemanticVersionsOnBranch(GitVersion.
GitVersion.Common.IRepositoryStore.GetTargetBranch(string? targetBranchName) -> GitVersion.IBranch!
GitVersion.Common.IRepositoryStore.GetVersionTagsOnBranch(GitVersion.IBranch! branch, string? tagPrefix, GitVersion.SemanticVersionFormat format) -> System.Collections.Generic.IEnumerable<GitVersion.SemanticVersion!>!
GitVersion.Common.IRepositoryStore.IsCommitOnBranch(GitVersion.ICommit? baseVersionSource, GitVersion.IBranch! branch, GitVersion.ICommit! firstMatchingCommit) -> bool
GitVersion.Configuration.ConfigurationException
GitVersion.Configuration.ConfigurationException.ConfigurationException() -> void
GitVersion.Configuration.ConfigurationException.ConfigurationException(string! message, System.Exception! innerException) -> void
GitVersion.Configuration.ConfigurationException.ConfigurationException(string! messageFormat, params object![]! args) -> void
GitVersion.Configuration.ConfigurationException.ConfigurationException(string! msg) -> void
GitVersion.Configuration.ConfigurationExtensions
GitVersion.Configuration.ConfigurationModule
GitVersion.Configuration.ConfigurationModule.ConfigurationModule() -> void
GitVersion.Configuration.ConfigurationModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void
GitVersion.Configuration.EffectiveBranchConfiguration
GitVersion.Configuration.EffectiveBranchConfiguration.Branch.get -> GitVersion.IBranch!
GitVersion.Configuration.EffectiveBranchConfiguration.EffectiveBranchConfiguration(GitVersion.Configuration.EffectiveConfiguration! Value, GitVersion.IBranch! Branch) -> void
Expand Down Expand Up @@ -137,6 +129,7 @@ GitVersion.Configuration.EffectiveConfiguration.VersionInBranchRegex.get -> Syst
GitVersion.Configuration.EffectiveConfiguration.VersioningMode.get -> GitVersion.VersionCalculation.VersioningMode
GitVersion.Configuration.IBranchConfiguration
GitVersion.Configuration.IBranchConfiguration.CommitMessageIncrementing.get -> GitVersion.VersionCalculation.CommitMessageIncrementMode?
GitVersion.Configuration.IBranchConfiguration.Empty() -> GitVersion.Configuration.IBranchConfiguration!
GitVersion.Configuration.IBranchConfiguration.Increment.get -> GitVersion.IncrementStrategy
GitVersion.Configuration.IBranchConfiguration.Inherit(GitVersion.Configuration.IBranchConfiguration! configuration) -> GitVersion.Configuration.IBranchConfiguration!
GitVersion.Configuration.IBranchConfiguration.IsMainline.get -> bool?
Expand Down Expand Up @@ -188,9 +181,6 @@ GitVersion.Configuration.IIgnoreConfiguration
GitVersion.Configuration.IIgnoreConfiguration.Before.get -> System.DateTimeOffset?
GitVersion.Configuration.IIgnoreConfiguration.IsEmpty.get -> bool
GitVersion.Configuration.IIgnoreConfiguration.Shas.get -> System.Collections.Generic.IReadOnlyCollection<string!>!
GitVersion.Configuration.Init.GitVersionInitModule
GitVersion.Configuration.Init.GitVersionInitModule.GitVersionInitModule() -> void
GitVersion.Configuration.Init.GitVersionInitModule.RegisterTypes(Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void
GitVersion.ConfigurationInfo
GitVersion.ConfigurationInfo.ConfigurationFile -> string?
GitVersion.ConfigurationInfo.ConfigurationInfo() -> void
Expand Down Expand Up @@ -813,6 +803,7 @@ static GitVersion.Configuration.ConfigurationExtensions.GetFallbackBranchConfigu
static GitVersion.Configuration.ConfigurationExtensions.GetReleaseBranchConfiguration(this GitVersion.Configuration.IGitVersionConfiguration! configuration) -> System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string!, GitVersion.Configuration.IBranchConfiguration!>>!
static GitVersion.Configuration.ConfigurationExtensions.IsReleaseBranch(this GitVersion.Configuration.IGitVersionConfiguration! configuration, GitVersion.IBranch! branch) -> bool
static GitVersion.Configuration.ConfigurationExtensions.IsReleaseBranch(this GitVersion.Configuration.IGitVersionConfiguration! configuration, GitVersion.ReferenceName! branchName) -> bool
static GitVersion.Configuration.ConfigurationExtensions.ToFilters(this GitVersion.Configuration.IIgnoreConfiguration! source) -> System.Collections.Generic.IEnumerable<GitVersion.VersionCalculation.IVersionFilter!>!
static GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.GetAssemblyFileVersion(this GitVersion.SemanticVersion! sv, GitVersion.Extensions.AssemblyFileVersioningScheme scheme) -> string?
static GitVersion.Extensions.AssemblyVersionsGeneratorExtensions.GetAssemblyVersion(this GitVersion.SemanticVersion! sv, GitVersion.Extensions.AssemblyVersioningScheme scheme) -> string?
static GitVersion.Extensions.CommonExtensions.NotNull<T>(this T? value, string! name = "") -> T!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

<ItemGroup>
<ProjectReference Include="..\GitVersion.BuildAgents\GitVersion.BuildAgents.csproj" />
<ProjectReference Include="..\GitVersion.Configuration\GitVersion.Configuration.csproj" />
<ProjectReference Include="..\GitVersion.LibGit2Sharp\GitVersion.LibGit2Sharp.csproj" />
<ProjectReference Include="..\GitVersion.MsBuild\GitVersion.MsBuild.csproj" />
<ProjectReference Include="..\GitVersion.Core\GitVersion.Core.csproj" />
Expand Down
1 change: 1 addition & 0 deletions src/GitVersion.MsBuild/GitVersion.MsBuild.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

<ItemGroup>
<ProjectReference Include="..\GitVersion.BuildAgents\GitVersion.BuildAgents.csproj" PrivateAssets="All" />
<ProjectReference Include="..\GitVersion.Configuration\GitVersion.Configuration.csproj" PrivateAssets="All" />
<ProjectReference Include="..\GitVersion.Core\GitVersion.Core.csproj" PrivateAssets="All" />
<ProjectReference Include="..\GitVersion.Output\GitVersion.Output.csproj" PrivateAssets="All" />
</ItemGroup>
Expand Down
2 changes: 2 additions & 0 deletions src/GitVersion.MsBuild/GitVersionTasks.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using GitVersion.Agents;
using GitVersion.Configuration;
using GitVersion.Extensions;
using GitVersion.Logging;
using GitVersion.MsBuild.Tasks;
Expand Down Expand Up @@ -68,6 +69,7 @@ private static IServiceProvider BuildServiceProvider(GitVersionTaskBase task)
};

services.AddSingleton(Options.Create(gitVersionOptions));
services.AddModule(new GitVersionConfigurationModule());
services.AddModule(new GitVersionCoreModule());
services.AddModule(new GitVersionBuildAgentsModule());
services.AddModule(new GitVersionOutputModule());
Expand Down
2 changes: 0 additions & 2 deletions src/GitVersion.Output/GitVersionOutputTool.cs
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,4 @@ public void GenerateGitVersionInformation(GitVersionVariables variables, FileWri
this.gitVersionInfoGenerator.Execute(variables, new GitVersionInfoContext(gitVersionOptions.WorkingDirectory, fileWriteInfo.FileName, fileWriteInfo.FileExtension, targetNamespace));
}
}

public void GenerateGitVersionInformation(GitVersionVariables variables, FileWriteInfo fileWriteInfo) => GenerateGitVersionInformation(variables, fileWriteInfo, null);
}
1 change: 0 additions & 1 deletion src/GitVersion.Output/IGitVersionOutputTool.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,5 @@ public interface IGitVersionOutputTool
void OutputVariables(GitVersionVariables variables, bool updateBuildNumber);
void UpdateAssemblyInfo(GitVersionVariables variables);
void UpdateWixVersionFile(GitVersionVariables variables);
void GenerateGitVersionInformation(GitVersionVariables variables, FileWriteInfo fileWriteInfo);
void GenerateGitVersionInformation(GitVersionVariables variables, FileWriteInfo fileWriteInfo, string? targetNamespace = null);
}
1 change: 0 additions & 1 deletion src/GitVersion.Output/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#nullable enable
GitVersion.IGitVersionOutputTool
GitVersion.IGitVersionOutputTool.GenerateGitVersionInformation(GitVersion.OutputVariables.GitVersionVariables! variables, GitVersion.FileWriteInfo! fileWriteInfo) -> void
GitVersion.IGitVersionOutputTool.GenerateGitVersionInformation(GitVersion.OutputVariables.GitVersionVariables! variables, GitVersion.FileWriteInfo! fileWriteInfo, string? targetNamespace = null) -> void
GitVersion.IGitVersionOutputTool.OutputVariables(GitVersion.OutputVariables.GitVersionVariables! variables, bool updateBuildNumber) -> void
GitVersion.IGitVersionOutputTool.UpdateAssemblyInfo(GitVersion.OutputVariables.GitVersionVariables! variables) -> void
Expand Down
1 change: 1 addition & 0 deletions src/GitVersion.Schema/GitVersion.Schema.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\GitVersion.Core\GitVersion.Core.csproj" />
<ProjectReference Include="..\GitVersion.Configuration\GitVersion.Configuration.csproj" />
</ItemGroup>
</Project>
Loading

0 comments on commit 1004b75

Please sign in to comment.