Skip to content

Commit

Permalink
minor: update deps and docs
Browse files Browse the repository at this point in the history
  • Loading branch information
lucasteles committed Apr 4, 2024
1 parent 71d1b9f commit 115bf8a
Show file tree
Hide file tree
Showing 235 changed files with 45,325 additions and 355 deletions.
44 changes: 22 additions & 22 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
{
"version": 1,
"isRoot": true,
"tools": {
"dotnet-format": {
"version": "5.1.250801",
"commands": [
"dotnet-format"
]
},
"dotnet-reportgenerator-globaltool": {
"version": "5.2.0",
"commands": [
"reportgenerator"
]
},
"nuke.globaltool": {
"version": "7.0.6",
"commands": [
"nuke"
]
"version": 1,
"isRoot": true,
"tools": {
"dotnet-reportgenerator-globaltool": {
"version": "5.2.4",
"commands": [
"reportgenerator"
]
},
"nuke.globaltool": {
"version": "8.0.0",
"commands": [
"nuke"
]
},
"docfx": {
"version": "2.75.3",
"commands": [
"docfx"
]
}
}
}
}
}
34 changes: 9 additions & 25 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -50,17 +50,17 @@ dotnet_style_prefer_conditional_expression_over_return = true:silent

# Style Definitions
dotnet_naming_style.pascal_case_style.capitalization = pascal_case
dotnet_naming_style.camel_case_style.capitalization = camel_case
dotnet_naming_style.camel_case_style.capitalization = camel_case


# constant case preferences
dotnet_naming_symbols.constant_fields.applicable_kinds = field
dotnet_naming_symbols.constant_fields.applicable_accessibilities = *
dotnet_naming_symbols.constant_fields.required_modifiers = const
dotnet_naming_symbols.constant_fields.applicable_kinds = field
dotnet_naming_symbols.constant_fields.applicable_accessibilities = *
dotnet_naming_symbols.constant_fields.required_modifiers = const

dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style

# fields case preferences
dotnet_naming_symbols.private_field_symbols.applicable_kinds = field
Expand Down Expand Up @@ -99,7 +99,7 @@ csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion
# Modifier preferences
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion
csharp_preferred_modifier_order = public, private, protected, internal, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, volatile, async:suggestion
# Expression-level preferences
csharp_prefer_braces = when_multiline:suggestion
csharp_style_deconstructed_variable_declaration = true:suggestion
Expand Down Expand Up @@ -135,24 +135,8 @@ csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_preserve_single_line_statements = true
csharp_preserve_single_line_blocks = true


# Roslynator
dotnet_analyzer_diagnostic.category-roslynator.severity = default
roslynator_analyzers.enabled_by_default = true
roslynator_refactorings.enabled = true
roslynator_compiler_diagnostic_fixes.enabled = true

dotnet_diagnostic.RCS1214.severity = warning
dotnet_diagnostic.RCS1036.severity = warning
dotnet_diagnostic.S3881.severity = suggestion
dotnet_diagnostic.IDE0011.severity = silent
dotnet_diagnostic.RCS1001.severity = silent
dotnet_diagnostic.RCS1194.severity = silent
dotnet_diagnostic.RCS1163.severity = silent
dotnet_diagnostic.RCS1118.severity = silent
dotnet_diagnostic.CA1050.severity = silent
dotnet_diagnostic.S3925.severity = silent

dotnet_diagnostic.CS1591.severity = silent
dotnet_diagnostic.CS1573.severity = silent

# Nunit
dotnet_diagnostic.NUnit1027.severity = silent
Expand Down
10 changes: 8 additions & 2 deletions .nuke/build.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,14 +84,17 @@
"enum": [
"BrowseReport",
"Build",
"BuildDocs",
"Clean",
"Docs",
"Format",
"GenerateBadges",
"GenerateReport",
"Lint",
"Report",
"Restore",
"Test"
"Test",
"UpdateTools"
]
}
},
Expand All @@ -107,14 +110,17 @@
"enum": [
"BrowseReport",
"Build",
"BuildDocs",
"Clean",
"Docs",
"Format",
"GenerateBadges",
"GenerateReport",
"Lint",
"Report",
"Restore",
"Test"
"Test",
"UpdateTools"
]
}
},
Expand Down
41 changes: 36 additions & 5 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,16 +1,49 @@
<Project>
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.csproj'">
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<ImplicitUsings>true</ImplicitUsings>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<InvariantGlobalization>true</InvariantGlobalization>
<PublishRelease>true</PublishRelease>
<CheckEolTargetFramework>false</CheckEolTargetFramework>
<IncludeSymbols>true</IncludeSymbols>
<WarningsAsErrors>CS8600;CS8602;CS8603;CS8604;CS8625;CS8618;CS8620</WarningsAsErrors>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>

<Authors>Lucas Teles - [email protected]</Authors>
<Company>lucasteles.dev</Company>
<PackageReadmeFile>README.md</PackageReadmeFile>
<RepositoryType>git</RepositoryType>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://lucasteles.github.io/CSharpPlus</PackageProjectUrl>
<RepositoryUrl>https://github.com/lucasteles/CSharpPlus.git</RepositoryUrl>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);CS1591;CS1573</NoWarn>
</PropertyGroup>

<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>

<PropertyGroup>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)\README.md" Pack="true" PackagePath="\"/>
</ItemGroup>

<ItemGroup Condition="'$(MSBuildProjectExtension)' == '.csproj'">
<PackageReference Include="SonarAnalyzer.CSharp" Version="9.16.0.82469">
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>

<PackageReference Include="SonarAnalyzer.CSharp" Version="9.23.1.88495">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand All @@ -20,5 +53,3 @@
</PackageReference>
</ItemGroup>
</Project>


74 changes: 47 additions & 27 deletions build/Build.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class BuildProject : NukeBuild
class MainBuild : NukeBuild
{
[Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")]
readonly Configuration Configuration =
Expand All @@ -12,9 +12,11 @@ class BuildProject : NukeBuild

[Solution] readonly Solution Solution;
[Parameter] readonly string TestResultFile = "test_result.xml";

AbsolutePath CoverageFiles => RootDirectory / "**" / "coverage.cobertura.xml";
AbsolutePath TestReportDirectory => RootDirectory / "TestReport";
AbsolutePath DocsPath => RootDirectory / "docfx";
AbsolutePath DocsSitePath => DocsPath / "_site";
const string MainBranch = "master";

Target Clean => _ => _
.Description("Clean project directories")
Expand Down Expand Up @@ -52,15 +54,13 @@ class BuildProject : NukeBuild
Target Format => _ => _
.Description("Try fix codebase formatting and analysers")
.DependsOn(Build)
.Executes(() => DotNetFormat(c => c
.EnableNoRestore()
.SetProject(Solution)));
.Executes(() => DotNetFormat(c => c.SetProject(Solution)));

Target Test => _ => _
.Description("Run tests with coverage")
.DependsOn(Build)
.Executes(() => DotNetTest(s => s
.SetVerbosity(DotNetVerbosity.Minimal)
.SetVerbosity(DotNetVerbosity.minimal)
.SetFilter("FullyQualifiedName!~Acceptance")
.EnableNoBuild()
.EnableNoRestore()
Expand All @@ -71,7 +71,7 @@ class BuildProject : NukeBuild
))
.Executes(() =>
{
ReportGenerator(r => r.LocalTool(Solution, "reportgenerator")
ReportGenerator(r => r
.SetReports(CoverageFiles)
.SetTargetDirectory(TestReportDirectory)
.SetReportTypes(ReportTypes.TextSummary));
Expand All @@ -84,49 +84,69 @@ class BuildProject : NukeBuild
.Description("Generate test coverage report")
.After(Test)
.OnlyWhenDynamic(() => CoverageFiles.GlobFiles().Any())
.Executes(() =>
ReportGenerator(r => r
.LocalTool(Solution, "reportgenerator")
.SetReports(CoverageFiles)
.SetTargetDirectory(TestReportDirectory)
.SetReportTypes(
ReportTypes.Html,
ReportTypes.Clover,
ReportTypes.Cobertura,
ReportTypes.MarkdownSummary
)));
.Executes(() => ReportGenerator(r => r
.SetReports(CoverageFiles)
.SetTargetDirectory(TestReportDirectory)
.SetReportTypes(
ReportTypes.Html,
ReportTypes.Clover,
ReportTypes.Cobertura,
ReportTypes.MarkdownSummary
)));

Target BrowseReport => _ => _
.Description("Open coverage report")
.OnlyWhenStatic(() => !NoBrowse && !DotnetRunningInContainer)
.After(GenerateReport, GenerateBadges)
.Unlisted()
.Executes(() =>
{
var path = TestReportDirectory / "index.htm";
OpenBrowser(path);
});
.Executes(() => OpenBrowser(TestReportDirectory / "index.htm"));

Target Report => _ => _
.Description("Run tests and generate coverage report")
.DependsOn(Test)
.Triggers(GenerateReport, BrowseReport);

Target BuildDocs => _ => _
.Description("Build DocFX")
.Executes(() =>
{
DocsSitePath.CreateOrCleanDirectory();
(DocsPath / "api").CreateOrCleanDirectory();
DotNetBuild(s => s.SetProjectFile(Solution).SetConfiguration(Configuration.Release));
DocFX.Build(c => c
.SetProcessWorkingDirectory(DocsPath)
.SetProcessEnvironmentVariable(DocFX.DocFXSourceBranchName, MainBranch)
);
});

Target Docs => _ => _
.Description("View DocFX")
.Executes(() =>
{
DotNetBuild(s => s.SetProjectFile(Solution).SetConfiguration(Configuration.Release));
DocFX.Serve(c => c
.SetProcessWorkingDirectory(DocsPath)
.SetProcessEnvironmentVariable(DocFX.DocFXSourceBranchName, MainBranch));
});

Target GenerateBadges => _ => _
.Description("Generate cool badges for readme")
.After(Test)
.Requires(() => CoverageFiles.GlobFiles().Any())
.Executes(() =>
{
var output = RootDirectory / "Badges";
output.CreateOrCleanDirectory();
Badges.ForCoverage(Solution, output, CoverageFiles);
var output = RootDirectory / "docfx" / "_site";
if (!output.DirectoryExists()) output.CreateDirectory();
Badges.ForCoverage(output, CoverageFiles);
Badges.ForDotNetVersion(output, GlobalJson);
Badges.ForTests(output, TestResultFile);
});

Target UpdateTools => _ => _
.Description("Update all project .NET tools")
.Executes(UpdateLocalTools);

public static int Main() => Execute<BuildProject>();
public static int Main() => Execute<MainBuild>();

protected override void OnBuildInitialized() =>
DotNetToolRestore(c => c.DisableProcessLogOutput());
Expand Down
Loading

0 comments on commit 115bf8a

Please sign in to comment.