diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f193f5a..ee29845 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,23 +26,25 @@ jobs: uses: actions/setup-dotnet@v5 with: dotnet-version: | - 8.0.* + 10.0.* - name: Git checkout Schema uses: actions/checkout@v6 with: path: Schema + persist-credentials: false - name: Git checkout Steeltoe uses: actions/checkout@v6 with: repository: SteeltoeOSS/Steeltoe path: Steeltoe ref: main + persist-credentials: false - name: Restore packages run: | dotnet restore Schema - - name: Build + - name: Build solution run: | dotnet build Schema --no-restore --configuration Release - name: Test run: | - dotnet test Schema --no-build --configuration Release --collect:"XPlat Code Coverage" --logger "GitHubActions;summary.includeSkippedTests=true" + dotnet test Schema --no-build --configuration Release diff --git a/ConfigurationSchemaGenerator/ConfigurationSchemaGenerator.csproj b/ConfigurationSchemaGenerator/ConfigurationSchemaGenerator.csproj index 3239c9e..2072810 100644 --- a/ConfigurationSchemaGenerator/ConfigurationSchemaGenerator.csproj +++ b/ConfigurationSchemaGenerator/ConfigurationSchemaGenerator.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net10.0 enable enable diff --git a/ConfigurationSchemaGeneratorTest/ConfigurationSchemaGeneratorTest.csproj b/ConfigurationSchemaGeneratorTest/ConfigurationSchemaGeneratorTest.csproj index 9cfc334..c5d7abf 100644 --- a/ConfigurationSchemaGeneratorTest/ConfigurationSchemaGeneratorTest.csproj +++ b/ConfigurationSchemaGeneratorTest/ConfigurationSchemaGeneratorTest.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 enable enable false @@ -11,11 +11,9 @@ - - - - + + diff --git a/Directory.Build.props b/Directory.Build.props index d2e1a91..deb4d94 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,9 +1,9 @@ - 6.0.* + 10.0.* 7.2.* - 2.4.* - 17.13.* - 2.* + 18.5.* + 3.2.* + 3.1.* diff --git a/Schema.sln b/Schema.sln deleted file mode 100644 index 2eec52f..0000000 --- a/Schema.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.10.35004.147 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConfigurationSchemaGenerator", "ConfigurationSchemaGenerator\ConfigurationSchemaGenerator.csproj", "{E56232A2-4A62-41A4-8B8D-C44E24787194}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConfigurationSchemaGeneratorTest", "ConfigurationSchemaGeneratorTest\ConfigurationSchemaGeneratorTest.csproj", "{8FB42B47-D6D5-444F-B741-D7766A249289}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E56232A2-4A62-41A4-8B8D-C44E24787194}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E56232A2-4A62-41A4-8B8D-C44E24787194}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E56232A2-4A62-41A4-8B8D-C44E24787194}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E56232A2-4A62-41A4-8B8D-C44E24787194}.Release|Any CPU.Build.0 = Release|Any CPU - {8FB42B47-D6D5-444F-B741-D7766A249289}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8FB42B47-D6D5-444F-B741-D7766A249289}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8FB42B47-D6D5-444F-B741-D7766A249289}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8FB42B47-D6D5-444F-B741-D7766A249289}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Schema.slnx b/Schema.slnx new file mode 100644 index 0000000..5ddf1a1 --- /dev/null +++ b/Schema.slnx @@ -0,0 +1,4 @@ + + + + diff --git a/Schema.sln.DotSettings b/Schema.slnx.DotSettings similarity index 84% rename from Schema.sln.DotSettings rename to Schema.slnx.DotSettings index 33d5f92..1eb9393 100644 --- a/Schema.sln.DotSettings +++ b/Schema.slnx.DotSettings @@ -3,24 +3,16 @@ 2000 3000 False - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - ExplicitlyExcluded - 2A975FB7-401B-41BB-96A4-1DF0036888A9 - 557AFE26-B89D-497D-92B6-8268D04396E5/d:Actuators/d:HeapDump/d:DotNetHeapDump - 557AFE26-B89D-497D-92B6-8268D04396E5/d:Actuators/d:Metrics/d:SystemDiagnosticsMetrics - 61812938-5132-4AB6-B48D-2DF4189B3E37/f:ConfigurationSchemaAttributes.cs - C4C38F83-8410-443C-9599-ACFB5FA7CD2D - C4C38F83-8410-443C-9599-ACFB5FA7CD2D/f:ConfigurationSchemaAttributes.cs/l:..?..?..?Common?src?Abstractions?ConfigurationSchemaAttributes.cs - DC1BC61A-E0FA-4CF9-9F24-D4C564A07836/f:Directory.Build.targets/l:..?Directory.Build.targets + ExplicitlyExcluded + ExplicitlyExcluded + ExplicitlyExcluded + 2C62D385-0462-A9A1-B49F-11B2CA4C133B/f:Directory.Build.targets/l:..?Directory.Build.targets + 790DD63C-8905-7556-AEBC-3CA429B0A44A + 790DD63C-8905-7556-AEBC-3CA429B0A44A/f:ConfigurationSchemaAttributes.cs/l:..?..?..?Common?src?Common?ConfigurationSchemaAttributes.cs + 9D8CC586-97FA-57A6-1702-125D9D03645D/f:ConfigurationSchemaAttributes.cs + CFB09DDD-8A94-3860-BFC2-111EC05320C3 SOLUTION True - True SUGGESTION SUGGESTION SUGGESTION @@ -28,6 +20,7 @@ SUGGESTION SUGGESTION SUGGESTION + WARNING SUGGESTION SUGGESTION SUGGESTION @@ -62,7 +55,9 @@ WARNING SUGGESTION DO_NOT_SHOW + DO_NOT_SHOW WARNING + SUGGESTION DO_NOT_SHOW HINT SUGGESTION @@ -82,11 +77,14 @@ WARNING SUGGESTION SUGGESTION + WARNING SUGGESTION WARNING WARNING WARNING + WARNING DO_NOT_SHOW + DO_NOT_SHOW WARNING WARNING WARNING @@ -94,6 +92,7 @@ WARNING SUGGESTION WARNING + SUGGESTION HINT WARNING WARNING @@ -104,14 +103,16 @@ SUGGESTION WARNING True + ShowAndRun SUGGESTION False - <?xml version="1.0" encoding="utf-16"?><Profile name="Steeltoe Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" /><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatInactiveBranches>True</CSReformatInactiveBranches><CSUpdateFileHeader>True</CSUpdateFileHeader></Profile> + <?xml version="1.0" encoding="utf-16"?><Profile name="Steeltoe Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" ArrangeAccessors="True" /><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatInactiveBranches>True</CSReformatInactiveBranches><CSharpReformatComments>True</CSharpReformatComments><CSUpdateFileHeader>True</CSUpdateFileHeader></Profile> Steeltoe Full Cleanup Required Required Required Required + StringEmpty Conditional False False @@ -168,6 +169,7 @@ WRAP_IF_LONG True True + 2 True 2 @@ -197,8 +199,7 @@ OnSingleLine False 160 - <?xml version="1.0" encoding="utf-16"?> -<Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns"> + <Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns"> <TypePattern DisplayName="Non-reorderable types" RemoveRegions="All"> <TypePattern.Match> <Or> @@ -222,7 +223,7 @@ <HasMember> <And> <Kind Is="Method" /> - <HasAttribute Name="Xunit.FactAttribute" Inherited="True" /> + <HasAttribute Inherited="True" Name="Xunit.FactAttribute" /> </And> </HasMember> </And> @@ -234,7 +235,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Group DisplayName="Fields"> @@ -247,7 +248,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Entry DisplayName="Static"> @@ -261,7 +262,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Entry DisplayName="Instance Readonly"> @@ -275,7 +276,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Entry DisplayName="Instance"> @@ -291,7 +292,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> </Group> @@ -304,7 +305,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Entry DisplayName="Instance"> @@ -317,7 +318,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> </Group> @@ -328,7 +329,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Group DisplayName="Events"> @@ -340,7 +341,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Entry DisplayName="Instance"> @@ -353,7 +354,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> </Group> @@ -368,7 +369,7 @@ </Or> </Entry.Match> <Entry.SortBy> - <Kind Order="Constructor" /> + <Kind Is="0" Order="Constructor" /> </Entry.SortBy> </Entry> <Entry DisplayName="Test methods" Priority="100"> @@ -378,6 +379,8 @@ <Or> <HasAttribute Name="Xunit.FactAttribute" /> <HasAttribute Name="Xunit.TheoryAttribute" /> + <HasAttribute Name="FactSkippedOnPlatform" /> + <HasAttribute Name="TheorySkippedOnPlatform" /> </Or> </And> </Entry.Match> @@ -399,7 +402,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Entry DisplayName="Nested types"> @@ -416,7 +419,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Group DisplayName="Fields"> @@ -429,7 +432,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Entry DisplayName="Static"> @@ -443,7 +446,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Entry DisplayName="Instance Readonly"> @@ -457,7 +460,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Entry DisplayName="Instance"> @@ -473,7 +476,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> </Group> @@ -486,7 +489,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Entry DisplayName="Instance"> @@ -499,7 +502,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> </Group> @@ -510,7 +513,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Group DisplayName="Events"> @@ -522,7 +525,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Entry DisplayName="Instance"> @@ -535,7 +538,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> </Group> @@ -558,7 +561,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access /> + <Access Is="0" /> </Entry.SortBy> </Entry> </Group> @@ -579,7 +582,7 @@ </And> </Entry.Match> <Entry.SortBy> - <Access Order="Private Internal Protected ProtectedInternal Public" /> + <Access Is="0" Order="Private Internal Protected ProtectedInternal Public" /> </Entry.SortBy> </Entry> <Entry DisplayName="Nested types"> @@ -605,20 +608,18 @@ See the LICENSE file in the project root for more information. IO IP MQ + OS OSX UAA False <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> - <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> - <Policy><Descriptor Staticness="Static, Instance" AccessRightKinds="Protected, PrivateProtected" Description="Protected fields"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> - <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /></Policy> + <Policy><Descriptor Staticness="Any" AccessRightKinds="Protected, PrivateProtected" Description="Protected fields"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" WarnAboutPrefixesAndSuffixes="True" Prefix="" Suffix="" Style="aaBb" /></Policy> True True True True True - True True True True @@ -641,7 +642,6 @@ See the LICENSE file in the project root for more information. True CSHARP False - Replace argument null check with Guard clause System.ArgumentNullException.ThrowIfNull($argument$); $left$ = $right$; $left$ = $right$ ?? throw new ArgumentNullException(nameof($argument$)); @@ -656,7 +656,6 @@ $left$ = $right$; True CSHARP False - Replace argument null check with Guard clause System.ArgumentNullException.ThrowIfNull($argument$); if ($argument$ == null) throw new ArgumentNullException(nameof($argument$)); WARNING @@ -683,9 +682,11 @@ $left$ = $right$; True True True + True True True True + True True True True @@ -694,7 +695,10 @@ $left$ = $right$; True True True - True + True + True + True + True True True