Various code cleanup#4988
Conversation
There was a problem hiding this comment.
Pull request overview
This PR performs a repo-wide namespace refactor to remove Core (and other folder-derived segments) from namespaces, aligning the codebase with the intended architectural meaning of GitVersion.Core as an assembly boundary rather than a namespace root, and adds JetBrains namespace-provider skip settings to help keep the convention enforced in Rider/ReSharper.
Changes:
- Removed
Corefrom namespaces/usings across production code and tests, with corresponding namespace adjustments. - Consolidated test namespaces under
GitVersion.Tests.*(including updatingRootNamespaceforGitVersion.Core.Tests). - Added
.DotSettingsnamespace-provider skip configuration files for relevant projects/folders.
Reviewed changes
Copilot reviewed 258 out of 258 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/integration/Directory.Build.props | Sets a default TFM for the integration test project build. |
| src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs | Removes GitVersion.Core using after namespace cleanup. |
| src/GitVersion.Output/AssemblyInfo/AssemblyInfoFileUpdater.cs | Removes GitVersion.Core using after namespace cleanup. |
| src/GitVersion.Output.Tests/Output/WixFileTests.cs | Moves test namespace/imports to the updated test namespace structure. |
| src/GitVersion.Output.Tests/Output/InformationalVersionBuilderTests.cs | Moves test namespace/imports to the updated test namespace structure. |
| src/GitVersion.Output.Tests/Output/GitVersionInfoGeneratorTests.cs | Moves test namespace/imports to the updated test namespace structure. |
| src/GitVersion.Output.Tests/Output/FormatArgumentTests.cs | Moves test namespace/imports to the updated test namespace structure. |
| src/GitVersion.Output.Tests/Output/AssemblyFileVersionTests.cs | Moves test namespace/imports to the updated test namespace structure. |
| src/GitVersion.Output.Tests/GitVersion.Output.Tests.csproj.DotSettings | Adds Rider/ReSharper namespace provider folder-skip configuration for Output. |
| src/GitVersion.MsBuild/Helpers/AssemblyInfoFileHelper.cs | Updates static import to the new GitVersion.RegexPatterns namespace. |
| src/GitVersion.MsBuild.Tests/Tasks/TestTaskBase.cs | Updates test helper namespace imports after test namespace consolidation. |
| src/GitVersion.MsBuild.Tests/InvalidFileCheckerTests.cs | Updates test helper namespace imports after test namespace consolidation. |
| src/GitVersion.MsBuild.Tests/Helpers/MsBuildTaskFixture.cs | Updates referenced test namespace/extensions after test namespace consolidation. |
| src/GitVersion.MsBuild.Tests/Helpers/MsBuildExeFixture.cs | Updates referenced test namespace/extensions after test namespace consolidation. |
| src/GitVersion.MsBuild.Tests/Helpers/GitRepositoryTestingExtensions.cs | Updates test helper namespace imports after test namespace consolidation. |
| src/GitVersion.LibGit2Sharp/Git/GitRepository.mutating.cs | Adds alias to disambiguate LockedFileException after namespace changes. |
| src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TrackReleaseBranchesVersionStrategy.cs | Removes GitVersion.Core/GitVersion.Common usings after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/TaggedCommitVersionStrategy.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MergeMessageVersionStrategy.cs | Removes GitVersion.Common using after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/MainlineVersionStrategy.cs | Removes GitVersion.Core/GitVersion.Common usings after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/VersionSearchStrategies/FallbacktVersionStrategy.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/VersionCalculators/VersionCalculatorBase.cs | Removes GitVersion.Common using after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/VersionCalculators/NextVersionCalculator.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/VersionCalculators/ManualDeploymentVersionCalculator.cs | Removes GitVersion.Common using after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeploymentVersionCalculator.cs | Removes GitVersion.Common using after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/VersionCalculators/ContinuousDeliveryVersionCalculator.cs | Removes GitVersion.Common using after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/VariableProvider.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/SemanticVersioning/SemanticVersionFormatValues.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/IncrementStrategyFinder.cs | Removes GitVersion.Core/GitVersion.Common usings after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/EffectiveBranchConfigurationFinder.cs | Removes GitVersion.Common using after namespace flattening. |
| src/GitVersion.Core/VersionCalculation/Caching/GitVersionCacheKeyFactory.cs | Removes GitVersion.Common using after namespace flattening. |
| src/GitVersion.Core/SemVer/SemanticVersionPreReleaseTag.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/SemVer/SemanticVersionBuildMetaData.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/SemVer/SemanticVersion.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/MergeMessage.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/Logging/Log.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/GitVersionCoreModule.cs | Removes GitVersion.Core/GitVersion.Common usings after namespace flattening. |
| src/GitVersion.Core/GitVersion.Core.csproj.DotSettings | Adds Rider/ReSharper namespace provider folder-skip configuration for core/*. |
| src/GitVersion.Core/Formatting/StringFormatWithExtension.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/Formatting/InputSanitizer.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/Extensions/StringExtensions.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/Extensions/ConfigurationExtensions.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/Core/TaggedSemanticVersionService.cs | Moves GitVersion.Core namespace to GitVersion. |
| src/GitVersion.Core/Core/TaggedSemanticVersions.cs | Moves GitVersion.Core namespace to GitVersion. |
| src/GitVersion.Core/Core/TaggedSemanticVersionRepository.cs | Moves GitVersion.Core namespace to GitVersion and updates member access qualifiers. |
| src/GitVersion.Core/Core/SourceBranchFinder.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/Core/RepositoryStore.cs | Removes GitVersion.Common using after namespace flattening. |
| src/GitVersion.Core/Core/RegexPatterns.cs | Moves GitVersion.Core namespace to GitVersion. |
| src/GitVersion.Core/Core/MergeCommitFinder.cs | Removes GitVersion.Common using after namespace flattening. |
| src/GitVersion.Core/Core/MergeBaseFinder.cs | Removes GitVersion.Common using after namespace flattening. |
| src/GitVersion.Core/Core/ITaggedSemanticVersionService.cs | Moves GitVersion.Core namespace to GitVersion. |
| src/GitVersion.Core/Core/ITaggedSemanticVersionRepository.cs | Moves GitVersion.Core namespace to GitVersion. |
| src/GitVersion.Core/Core/IBranchRepository.cs | Moves GitVersion.Core namespace to GitVersion. |
| src/GitVersion.Core/Core/GitVersionContextFactory.cs | Removes GitVersion.Core/GitVersion.Common usings after namespace flattening. |
| src/GitVersion.Core/Core/EffectiveConfigurationExtensions.cs | Moves GitVersion.Core namespace to GitVersion. |
| src/GitVersion.Core/Core/BranchRepository.cs | Moves GitVersion.Core namespace to GitVersion and removes GitVersion.Common using. |
| src/GitVersion.Core/Core/BranchesContainingCommitFinder.cs | Removes GitVersion.Common using after namespace flattening. |
| src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs | Moves GitVersion.Common namespace to GitVersion. |
| src/GitVersion.Core/Configuration/ReferenceNameExtensions.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core/Configuration/IBranchConfiguration.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Core.Tests/VersionCalculation/VersionSourceTests.cs | Moves tests to GitVersion.Tests.* namespaces and updates helper imports. |
| src/GitVersion.Core.Tests/VersionCalculation/VariableProviderTests.cs | Moves tests to GitVersion.Tests.* namespaces and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/VersionCalculation/Strategies/VersionInBranchNameBaseVersionStrategyTests.cs | Moves tests to GitVersion.Tests.* namespaces and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/VersionCalculation/Strategies/MergeMessageBaseVersionStrategyTests.cs | Moves tests to GitVersion.Tests.* namespaces and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/VersionCalculation/Strategies/ConfiguredNextVersionVersionStrategyTests.cs | Moves tests to GitVersion.Tests.* namespaces and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/VersionCalculation/ShaVersionFilterTests.cs | Moves tests to GitVersion.Tests.* namespaces and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/VersionCalculation/SemanticVersionTests.cs | Moves tests to GitVersion.Tests.* namespaces and updates RegexPatterns references. |
| src/GitVersion.Core.Tests/VersionCalculation/PathFilterTests.cs | Moves tests to GitVersion.Tests.* namespaces and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/VersionCalculation/NextVersionCalculatorTests.cs | Moves tests to GitVersion.Tests.* namespaces and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/VersionCalculation/MinDateVersionFilterTests.cs | Moves tests to GitVersion.Tests.* namespaces and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/VersionCalculation/JsonVersionBuilderTests.cs | Moves tests to GitVersion.Tests.* namespaces and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/VersionCalculation/EffectiveBranchConfigurationFinderTests.cs | Moves tests to GitVersion.Tests.* namespaces and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/MergeMessageTests.cs | Moves tests to GitVersion.Tests namespace and updates helper imports. |
| src/GitVersion.Core.Tests/Mainline/* | Bulk namespace updates for mainline scenario tests and this. qualification cleanups. |
| src/GitVersion.Core.Tests/Logging/LoggingTests.cs | Moves tests to GitVersion.Tests.Logging. |
| src/GitVersion.Core.Tests/Logging/LoggerTest.cs | Moves tests to GitVersion.Tests.Logging and updates helper imports. |
| src/GitVersion.Core.Tests/IntegrationTests/* | Moves integration tests to GitVersion.Tests.IntegrationTests and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/Helpers/TestLogAppender.cs | Moves helper namespace to GitVersion.Tests.Helpers. |
| src/GitVersion.Core.Tests/Helpers/TestEnvironment.cs | Moves helper namespace to GitVersion.Tests.Helpers. |
| src/GitVersion.Core.Tests/Helpers/TestConsoleAdapter.cs | Moves helper namespace to GitVersion.Tests.Helpers. |
| src/GitVersion.Core.Tests/Helpers/TestBase.cs | Moves helper namespace to GitVersion.Tests.Helpers. |
| src/GitVersion.Core.Tests/Helpers/TestableGitVersionVariables.cs | Moves helper namespace to GitVersion.Tests.Helpers. |
| src/GitVersion.Core.Tests/Helpers/ParticipantSanitizerTests.cs | Moves helper namespace to GitVersion.Tests.Helpers. |
| src/GitVersion.Core.Tests/Helpers/GitVersionCoreTestModule.cs | Moves helper namespace to GitVersion.Tests.Helpers. |
| src/GitVersion.Core.Tests/Helpers/GitVersionContextBuilder.cs | Moves builder to GitVersion.Tests.Helpers and updates member access qualifiers. |
| src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj.DotSettings | Adds Rider/ReSharper namespace provider folder-skip configuration for core. |
| src/GitVersion.Core.Tests/GitVersion.Core.Tests.csproj | Sets RootNamespace to GitVersion.Tests. |
| src/GitVersion.Core.Tests/Formatting/* | Moves formatting tests under GitVersion.Tests.Formatting and updates extension imports. |
| src/GitVersion.Core.Tests/Extensions/StringFormatWithExtensionTests.cs | Moves test namespace and updates helper imports. |
| src/GitVersion.Core.Tests/Extensions/ShouldlyExtensions.cs | Moves extensions namespace to GitVersion.Tests.Extensions. |
| src/GitVersion.Core.Tests/Extensions/MockCollectionExtensions.cs | Moves extensions namespace to GitVersion.Tests.Extensions. |
| src/GitVersion.Core.Tests/Extensions/GitVersionVariablesExtensions.cs | Moves extensions namespace to GitVersion.Tests.Extensions. |
| src/GitVersion.Core.Tests/Extensions/GitRepositoryTestingExtensions.cs | Moves extensions namespace and updates helper imports. |
| src/GitVersion.Core.Tests/DocumentationTests.cs | Moves tests to GitVersion.Tests and updates member access qualifiers. |
| src/GitVersion.Core.Tests/Core/RepositoryStoreTests.cs | Moves tests to GitVersion.Tests and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/Core/RepositoryExtensionsTests.cs | Moves tests to GitVersion.Tests and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/Core/GitVersionToolDirectoryTests.cs | Moves tests to GitVersion.Tests and updates member access qualifiers. |
| src/GitVersion.Core.Tests/Core/GitVersionExecutorTests.cs | Moves tests to GitVersion.Tests and updates member access qualifiers. |
| src/GitVersion.Core.Tests/Core/DynamicRepositoryTests.cs | Moves tests to GitVersion.Tests and updates helper imports/extensions. |
| src/GitVersion.Core.Tests/CommitDateTests.cs | Moves tests to GitVersion.Tests and updates helper imports. |
| src/GitVersion.Configuration/GitVersionConfiguration.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Configuration/Builders/TrunkBasedConfigurationBuilder.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Configuration/Builders/GitHubFlowConfigurationBuilder.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Configuration/Builders/GitFlowConfigurationBuilder.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Configuration/Builders/ConfigurationBuilderBase.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.Configuration.Tests/GitVersion.Configuration.Tests.csproj.DotSettings | Adds Rider/ReSharper namespace provider folder-skip configuration for configuration. |
| src/GitVersion.Configuration.Tests/Configuration/IgnoreConfigurationTests.cs | Moves tests to GitVersion.Configuration.Tests and updates member access qualifiers. |
| src/GitVersion.Configuration.Tests/Configuration/Extensions.cs | Moves test extensions namespace under GitVersion.Configuration.Tests. |
| src/GitVersion.Configuration.Tests/Configuration/ConfigurationProviderTests.cs | Moves tests to GitVersion.Configuration.Tests and updates RegexPatterns references/qualifiers. |
| src/GitVersion.Configuration.Tests/Configuration/ConfigurationFileLocatorTests.cs | Moves tests to GitVersion.Configuration.Tests and updates member access qualifiers. |
| src/GitVersion.Configuration.Tests/Configuration/ConfigurationExtensionsTests.cs | Moves tests to GitVersion.Configuration.Tests. |
| src/GitVersion.BuildAgents.Tests/Agents/TeamCityTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/SpaceAutomationTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/MyGetTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/JenkinsTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/GitLabCiTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/GitHubActionsTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/EnvRunTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/DroneTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/ContinuaCiTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/CodeBuildTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/BuildServerBaseTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/BuildKiteTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/BitBucketPipelinesTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.BuildAgents.Tests/Agents/AzurePipelinesTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.App/ArgumentParserExtensions.cs | Removes GitVersion.Core using after namespace flattening. |
| src/GitVersion.App.Tests/VersionWriterTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.App.Tests/TagCheckoutInBuildAgentTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.App.Tests/PullRequestInBuildAgentTest.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.App.Tests/JsonOutputOnBuildServerTest.cs | Updates extension namespace usage after test namespace consolidation. |
| src/GitVersion.App.Tests/HelpWriterTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.App.Tests/Helpers/ProgramFixture.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.App.Tests/Helpers/ExecutionResults.cs | Updates extension namespace usage after test namespace consolidation. |
| src/GitVersion.App.Tests/GitVersion.App.Tests.csproj.DotSettings | Adds Rider/ReSharper namespace provider folder-skip configuration for helpers. |
| src/GitVersion.App.Tests/ArgumentParserTests.cs | Updates helper imports after test namespace consolidation. |
| src/GitVersion.App.Tests/ArgumentParserOnBuildServerTests.cs | Updates helper imports after test namespace consolidation. |
|
Gah, I forgot to rebase my |
|
shouldn't be a bit issues, most of the changes are namespaces. |
|
maybe you can first check #4977 then once that is merged you can do your rebase? |
yep, merge the other one will switch the focus only on this one, so if you're fine with those changes, approved it, I will rebase and merge and then you can rebase yours |
|
This might be something we could use to ensure the integrity: |
`Core` should not be a namespace provider in JetBrains ReSharper and JetBrains Rider.
`Helpers` should not be a namespace provider in JetBrains ReSharper and JetBrains Rider.
15d487f to
92fda54
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 269 out of 269 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
src/GitVersion.Core/Core/Abstractions/IRepositoryStore.cs:8
- This public interface was moved into the
GitVersionnamespace. That’s an API-breaking change for any external consumers referencingGitVersion.Common.IRepositoryStore. If this is intended, it likely needs a major version bump and/or a documented migration path (release notes). If backward compatibility is required, consider adding some form of compatibility shim (where feasible) to avoid hard breaks.
92fda54 to
b3c977d
Compare
b3c977d to
37fc8c1
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 282 out of 282 changed files in this pull request and generated 4 comments.
Comments suppressed due to low confidence (1)
src/GitVersion.Testing/Helpers/ParticipantSanitizer.cs:4
RegexPatternswas moved out of theGitVersion.Corenamespace, but this file no longer imports the new namespace. As-is,RegexPatterns.Output...won’t resolve in this project (nousing GitVersion;/ no qualification), causing a build break.
| @@ -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"> | |||
There was a problem hiding this comment.
This is very strange. I haven't hand-coded the file, it's only changed from within Rider. But yeah, urn:shemas-jetbrains-com:settings-storage-xaml doesn't seem right (shemas should be schemas – it's missing a c). Thoughts @arturcic?
| @@ -0,0 +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"> | |||
3570bb9 to
50abe08
Compare
Clean up namespaces by removing `Core` and `Helpers`.
Qualify `this.` prefix on private fields; unqualify it on all other class members.
50abe08 to
ed31bb3
Compare
|
@asbjornu this one looks good to me. I will just merge (the sonarcloud issues I will fix them later |
|
Thank you @asbjornu for your contribution! |
|



Coreand other folders that shouldn't provide namespaces for ReSharper and Rider. Then adjust the namespace everywhere accordingly.this.prefix on private fields; unqualify it on all other class members.Description
GitVersion.Coreis just an assembly name, similar toSystem.Core.dll. It indicates on a project level that it is the inner-most kernel of the entire solution, when viewed through the lens of Clean Architecture, Onion Architecture, Hexagonal Architecture (or Ports and Adapters), etc. This is not to say that GitVersion slavishly follows either of these architectures, but it does indicate that a dependency-free, functional core is an important design principle.As such, the name
Coreshould not be visible anywhere in the codebase other than as the name of the assembly containing the code that lives there. This PR therefore removesCorefrom all namespaces and tries to ensure that it stays like this by creating namespace provider configuration files for ReSharper and Rider such that this is respected in the future.Related Issue
Resolves #4987.
Checklist: