Compare commits

...

121 Commits

Author SHA1 Message Date
7eb0f4c6d6 🎉Starts a new project 2026-02-15 15:32:17 +02:00
f462fa7c33 🔀 Merge remote-tracking branch 'template/main' 2026-02-15 15:31:17 +02:00
b2e46fe7a7 🔧 Enables SBOM generation only for packable projects 2026-02-15 15:27:45 +02:00
4119b8c82b 🔧 Updates StyleCop configuration to place using directives outside namespace and removes delegate from top-level types 2026-02-15 15:27:45 +02:00
a15f35aeb8 🔧 Fixes case sensitive path for linux 2026-02-15 15:27:45 +02:00
ab849a8d3b ⬆️ Updates package versions in Directory.Packages.props 2026-02-15 15:27:45 +02:00
50d7e11c16 🔧 Removes deprecated IncludeOpenAPIAnalyzers property 2026-02-15 15:27:45 +02:00
df744087d4 🔧 Adds ruleset for common Roslyn analyzer configuration 2026-02-15 15:27:44 +02:00
6e9450fbf5 🔧 Aligns stylecop rules with C# config 2026-02-15 15:27:44 +02:00
67801c3795 📝 Exposes stylecop.json on the solution 2026-02-15 15:27:44 +02:00
250b6fc5ed 🔧 Updates packaging configuration for README and icon files 2026-02-15 15:27:44 +02:00
6c3c274de5 🔧 Fixes condition for including README in NuGet package 2026-02-15 15:27:44 +02:00
45f6e66174 🔧 Excludes stylecop.json from package outputs 2026-02-15 15:27:44 +02:00
5e9b6ab9de 🔧 Fixes project icon and README paths 2026-02-15 15:27:44 +02:00
0fd028eff6 🔧 Updates Stylecop configuration to use AdditionalFiles instead of Content
This lead to stylecop.json files being published alongside the nugets
2026-02-15 15:27:43 +02:00
286d8fdc7e 🔧 Adds PackageReference for Microsoft.Sbom.Targets 2026-02-15 15:27:43 +02:00
6ad3aac084 Adds Stylecop replacement package 2026-02-15 15:27:43 +02:00
09668de51c 💄 Basic styling guide for stylecop 2026-02-15 15:27:43 +02:00
7df22a4413 🔧 Set Configuration analysis if it hasn't been overriden 2026-02-15 15:27:43 +02:00
37603dedf2 🔧 Uses Stylecop configuration if present 2026-02-15 15:27:43 +02:00
f3a4c804b7 🔧 Disable source generated files 2026-02-15 15:27:43 +02:00
02d5746360 🔧 Adds SBOM for nuget packages 2026-02-15 15:27:43 +02:00
ad61e47a17 ⬆️ Updates package versions in Directory.Packages.props 2026-02-15 15:27:01 +02:00
4fdcec1a13 Merge pull request #6 from kritikos-io/main-Apollo
Main apollo
2026-02-15 15:24:35 +02:00
876c09f49f 🔧 Updates StyleCop configuration to place using directives outside namespace and removes delegate from top-level types 2026-02-15 15:21:28 +02:00
4633ce5808 🔀 Merge remote-tracking branch 'template/main' 2026-02-15 14:27:35 +02:00
c7cfa2b2fc 🔧 Fixes case sensitive path for linux 2025-12-30 05:18:27 +02:00
f03d4b9e20 ⬆️ Updates package versions in Directory.Packages.props 2025-11-20 12:03:21 +02:00
1c7fad5a99 🔧 Removes deprecated IncludeOpenAPIAnalyzers property 2025-11-20 11:59:14 +02:00
effd140385 🔧 Adds ruleset for common Roslyn analyzer configuration 2025-11-13 15:54:10 +02:00
bc99d28738 🔧 Aligns stylecop rules with C# config 2025-11-13 15:41:27 +02:00
aef9990695 📝 Exposes stylecop.json on the solution 2025-11-13 14:34:04 +02:00
252595617f 🔧 Updates packaging configuration for README and icon files 2025-11-12 04:36:39 +02:00
2a89dc341b 🔧 Fixes condition for including README in NuGet package 2025-11-12 04:36:01 +02:00
abf6a1c04a 🔧 Excludes stylecop.json from package outputs 2025-11-12 04:34:37 +02:00
bb3cadc731 🔧 Fixes project icon and README paths 2025-11-12 04:33:42 +02:00
1e5caa208f 🔧 Updates Stylecop configuration to use AdditionalFiles instead of Content
This lead to stylecop.json files being published alongside the nugets
2025-11-11 23:55:55 +02:00
4efb21ca1c 🔧 Enables SBOM generation only for packable projects 2025-11-11 02:28:19 +02:00
2b6659239d 🔥 Removes deprecated OpenAPI Analyzers property 2025-11-11 02:27:42 +02:00
384a66e55a 🔧 Adds PackageReference for Microsoft.Sbom.Targets 2025-11-11 02:08:20 +02:00
8002108e5d Adds Stylecop replacement package 2025-11-05 16:08:41 +02:00
0e65386326 💄 Basic styling guide for stylecop 2025-11-05 16:05:49 +02:00
c12a3a8d5a 🔧 Set Configuration analysis if it hasn't been overriden 2025-11-05 16:05:27 +02:00
9bab84d53a 🔧 Uses Stylecop configuration if present 2025-11-05 16:00:42 +02:00
586c92ee49 🔧 Disable source generated files 2025-11-05 16:00:09 +02:00
5215570111 🔧 Adds SBOM for nuget packages 2025-11-05 15:59:36 +02:00
3266fd5e65 🔧 Disables CentralPackageTransitivePinning in favor of explicit references
Keeping this enabled makes nuget updating a pain, with manual edits required to circumvent certain dependency graphs
2025-10-24 14:53:23 +03:00
4e997a6fdf 🔧 Adds UseArtifactsOutput property for non-empty ArtifactsPath 2025-10-24 14:32:35 +03:00
9a9b3ca9f8 🚚 Allows underscores in unit test names 2025-08-20 14:05:18 +03:00
0a769040fc 🔧 Fixes EF Core migrations with compiled models 2025-08-20 13:46:32 +03:00
268aff434e 🚨 Adds back dotnet ruleset 2025-08-20 13:42:33 +03:00
30e2c18b68 🔧 Enables opting out of custom paths via DisableCustomArtifactsPath variable
Necessary to faciliate Deterministic builds
2025-08-16 18:15:29 +03:00
405767587e 🔖 Updates GitVersion to latest configuration values 2025-08-16 17:39:37 +03:00
aff7de0901 🚚 Falls back to msbuild configured paths 2025-08-16 16:24:28 +03:00
6bb600ac87 🚚 Sets proper path for published artifacts and allows overriding 2025-08-16 16:23:00 +03:00
b744a8b052 🔖 Moves back to GitHub Flow branching strategy 2025-07-10 14:38:43 +03:00
7caf5ed4aa 🎉 Uses actual folder name in VS Code 2025-06-16 23:27:54 +03:00
c23c9b35d6 🔧 Adds default implcit namespace for tests 2025-06-16 23:27:38 +03:00
3859d2f5bc 📝 Updates readme 2025-06-16 22:53:39 +03:00
419780df44 Replaces configuration files and update project structure 2025-06-16 22:35:21 +03:00
65f3c1c41b 📝 Moves community guide files to platform-agnostic folder 2025-06-06 17:20:54 +03:00
cbb7fa1f16 🔥 Removes artifacts folder as it may be overriden now 2025-06-06 17:18:14 +03:00
8809cd3441 📝 Updates README with repo changes 2025-06-06 17:17:25 +03:00
aabe5df595 🙈 Adds git & docker ignore files 2025-06-06 17:07:55 +03:00
4a6cdd4911 🎨 Adds common editor settings 2025-06-06 17:07:07 +03:00
bd6dfda7b4 🔥 Removes all symbolic link files 2025-06-06 17:06:12 +03:00
36ff8d6154 🔧 Removes configuration submodule 2025-06-06 16:53:04 +03:00
b5fb124145 ⬆️ Upgrades common package versions 2024-12-02 19:14:04 +02:00
826a434a3c 🔥 Replaces solution file with new format 2024-12-02 19:11:03 +02:00
cbced3a990 🔧 Upgrades configuration submodule 2024-12-02 19:10:50 +02:00
d499b86af3 📝 Adds current information to README 2023-11-15 18:51:33 +02:00
8563226292 🙈 Saves artifact folder 2023-11-15 10:48:03 +02:00
5fbc3701c8 🔧 Updates configuration submodule 2023-11-15 00:42:16 +02:00
e79b3f1f19 🚚 Follows file naming pattern inside solution 2023-11-15 00:42:01 +02:00
382a710039 🚚 Renames case sensitive file, part #2 2023-11-15 00:40:52 +02:00
6124dee0bd 🚚 Renames case sensitive file, part #1 2023-11-15 00:40:34 +02:00
c55132f26d 🔧 Updates configuration submodule 2023-11-15 00:19:29 +02:00
8d4fe61f36 🔖 Removes RepositoryUrl since it is now autodiscovered by Source Link 2023-11-14 23:03:00 +02:00
266a795b32 🔧 Adds VS Code settings 2023-11-13 00:02:47 +02:00
d2f0a7f57c 🔧 Fixes solution assets and common package versions 2023-11-13 00:02:20 +02:00
c6c1a45899 📌 Moves Directory.Packages.props to proper solution folder 2023-04-07 15:46:04 +03:00
4256c93f20 📦 Moves packages to a single section 2023-01-26 14:26:06 +02:00
eafb6958a8 📦 Exposes package versions to solution 2023-01-15 23:17:41 +02:00
8c3aa2d710 📦 Makes common nugets compatible with CPM 2023-01-15 23:14:34 +02:00
c312e20e2c 📦 Enables Central Package Management 2023-01-15 03:48:14 +02:00
1904910aed 🧪 Adds test settings 2022-09-07 21:19:04 +03:00
2c651f4739 🚨 Moves editor conventions to seperate file 2022-09-07 21:18:45 +03:00
6683d94f0b 🧑‍💻 Prefers local configuration files over submodule 2022-07-28 22:32:27 +03:00
892a295650 🔧 Updates configuration submodule 2022-07-28 22:30:46 +03:00
cfbf38e411 🔧 Updates configuration submodule 2021-08-19 11:30:47 +03:00
5869c787fe 🔥 Removes redundant file 2021-08-19 11:30:27 +03:00
40d7cefeed 💚 Removes old CI sample 2021-08-19 11:30:10 +03:00
fc4e0d061e 🔧 Uses latest configuration files 2021-08-16 17:14:26 +03:00
d140b10bc2 🍱 Adds nuget icon 2021-06-20 20:02:46 +03:00
d281068f49 Merge pull request #5 from kritikos-io/develop
✏️ Sets proper submodule url
2021-06-20 19:11:36 +03:00
a5a5163803 ✏️ Sets proper submodule url 2021-06-20 19:09:29 +03:00
3179f6d127 Merge pull request #4 from kritikos-io/develop
🔧 Sets submodule branch
2021-06-20 19:08:13 +03:00
a71461fd29 🔧 Sets submodule branch 2021-06-20 19:07:21 +03:00
041569e152 Merge pull request #3 from kritikos-io/develop
Develop
2021-06-20 19:02:21 +03:00
f215b28678 🔧 Updates configuration submodule 2021-06-20 18:57:36 +03:00
f99d41d948 🚚 Renames Dotnet to Solution 2021-06-20 18:53:16 +03:00
e197af00c6 Merge pull request #2 from kritikos-io/develop
Develop
2021-06-19 16:54:59 +03:00
97d0b50fa7 🚚 Ensures required folders exist 2021-06-19 16:52:04 +03:00
2045af18ab 🔧 Implements missing configuration files 2021-06-19 16:47:37 +03:00
1b19576225 🔧 Adds handling for samples & tests 2021-06-19 16:47:14 +03:00
cc8551f9f7 🔧 Properly implements configuration submodule 2021-06-19 16:37:47 +03:00
4a640e4ec6 💚 Updates CI configuration 2019-12-07 23:56:25 +02:00
6310ca3027 🔀 Merge pull request #1 from kritikos-io/develop
Develop
2019-12-07 14:14:19 +02:00
c79860e1a9 🔧 Exposes Semantic Versioning configuration 2019-12-07 14:13:23 +02:00
412e2aab45 ♻️ Renames resharper settings for consistency 2019-12-07 14:12:48 +02:00
08b0461f2e 📝 Adds documentation 2019-11-30 20:10:56 +02:00
1c52c71e05 🤡 Adds initial solution 2019-11-30 20:10:40 +02:00
412d6c58c0 💬 Adds github templates 2019-11-30 20:09:58 +02:00
827f44ac05 🔧 Adds gulp tasks for minification and sass compiling 2019-11-30 20:09:16 +02:00
9fe93d5f8c 🔧 Implements shared Resharper configuration 2019-11-30 19:44:01 +02:00
015933e906 🔧 Adds Visual Studio Code configuration files 2019-11-30 19:41:37 +02:00
536bf8b90f 📄 Adds license file (Apache 2.0) 2019-11-30 19:40:55 +02:00
a6a6f9d618 📌 Adds common nuget configuration 2019-11-30 19:38:56 +02:00
621aab6229 💚 Adds basic CI configuration 2019-11-30 19:15:41 +02:00
7b5f026bf2 🔧 Adds configuration submodule 2019-11-30 19:15:23 +02:00
a85199ed30 🎉 Initial commit 2019-11-30 19:14:09 +02:00
7 changed files with 103 additions and 16 deletions

View File

@@ -33,6 +33,7 @@
<AnalysisLevel>preview</AnalysisLevel>
<AnalysisMode>All</AnalysisMode>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<CodeAnalysisTreatWarningsAsErrors Condition="$(CodeAnalysisTreatWarningsAsErrors) == ''">false</CodeAnalysisTreatWarningsAsErrors>
<!-- Locked mode should only be enabled on CI -->
<RestoreLockedMode Condition="'$(ContinuousIntegrationBuild)' == 'true'">true</RestoreLockedMode>
<!-- Use deterministic builds -->
@@ -45,7 +46,7 @@
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode>
<ApplicationVisualStyles>true</ApplicationVisualStyles>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<EmitCompilerGeneratedFiles>false</EmitCompilerGeneratedFiles>
<GenerateRequiresPreviewFeaturesAttribute>False</GenerateRequiresPreviewFeaturesAttribute>
<DefaultItemExcludes>$(DefaultItemExcludes);*.log;*.binlog</DefaultItemExcludes>
</PropertyGroup>
@@ -67,18 +68,18 @@
<PropertyGroup Label="Project Assets">
<ProjectIcon Condition="Exists('$(MSBuildThisFileDirectory)\icon.png')">
$(MSBuildThisFileDirectory)\icon.png
$(MSBuildThisFileDirectory)icon.png
</ProjectIcon>
<ProjectIcon Condition="Exists('$(MSBuildProjectDirectory)\icon.png')">
$(MSBuildProjectDirectory)\icon.png
$(MSBuildProjectDirectory)icon.png
</ProjectIcon>
<ProjectIconExists Condition="$(ProjectIcon) != ''">true</ProjectIconExists>
<ProjectReadMe Condition="Exists('$(MSBuildThisFileDirectory)\README.md')">
$(MSBuildThisFileDirectory)\README.md
$(MSBuildThisFileDirectory)README.md
</ProjectReadMe>
<ProjectReadMe Condition="Exists('$(MSBuildProjectDirectory)\README.md')">
$(MSBuildProjectDirectory)\README.md
$(MSBuildProjectDirectory)README.md
</ProjectReadMe>
<ProjectReadMeExists Condition="$(ProjectReadMe) != ''">true</ProjectReadMeExists>
</PropertyGroup>
@@ -95,7 +96,6 @@
</PropertyGroup>
<PropertyGroup Label="OpenAPI Analyzers" Condition="'$(UsingMicrosoftNETSdkWeb)' == 'True'">
<IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers>
<OpenApiDocumentsDirectory>$(MSBuildProjectDirectory)/OpenApi</OpenApiDocumentsDirectory>
</PropertyGroup>
@@ -130,6 +130,7 @@
<!-- Mark assemblies as CLS compliant so the compiler warns on non compliant usage -->
<PropertyGroup Condition="$(IsPackable) == 'true'">
<ClsCompliant>true</ClsCompliant>
<GenerateSBOM>true</GenerateSBOM>
</PropertyGroup>
<ItemGroup>
<AssemblyAttribute Include="System.CLSCompliant">
@@ -145,13 +146,13 @@
</PropertyGroup>
<!-- Use readme as nuget information -->
<ItemGroup Label="Readme" Condition="$(IsPackable) == 'True' AND $(ProjectReadMe) != ''">
<None Include="$(ProjectReadMe)" Pack="true" PackagePath="" Visible="true"/>
<ItemGroup Label="Readme" Condition="$(IsPackable) == 'True' AND $(ProjectReadMeExists) == 'True'">
<Content Include="$(ProjectReadMe)" PackagePath="README.md" />
</ItemGroup>
<!-- Use nuget icon -->
<ItemGroup Label="Icon" Condition="$(IsPackable) == 'True' AND $(ProjectIconExists) == 'True'">
<None Include="$(ProjectIcon)" Pack="true" PackagePath="icon.png" Visible="false"/>
<Content Include="$(ProjectIcon)" Pack="true" PackagePath="icon.png" Visible="false"/>
</ItemGroup>
<!-- Uses pretty xUnit configuration -->
@@ -160,6 +161,12 @@
<Content Include="$(MSBuildThisFileDirectory)\xunit.runner.json" Link="xunit.runner.json" CopyToOutputDirectory="PreserveNewest" Visible="false" />
</ItemGroup>
<ItemGroup Label="Stylecop Configuration"
Condition="Exists('$(MSBuildThisFileDirectory)\stylecop.json')">
<AdditionalFiles Include="$(MSBuildThisFileDirectory)\stylecop.json" Link="stylecop.json"
CopyToOutputDirectory="Never" Visible="false" />
</ItemGroup>
<!-- Project internals are exposed to projects named $(Project).Tests by default -->
<ItemGroup
Condition="@(InternalsVisibleToSuffix->Count()) == 0 AND @(InternalsVisibleTo->Count()) == 0">
@@ -200,6 +207,13 @@
</PackageReference>
</ItemGroup>
<ItemGroup Label="Analyzers">
<PackageReference Include="NewStyleCop.Analyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup Label="Test Frameworks" Condition="'$(IsTestProject)' == 'true'">
<PackageReference Include="NSubstitute"/>
<PackageReference Include="NSubstitute.Analyzers.CSharp">
@@ -210,6 +224,7 @@
<ItemGroup Label="SourceLink" Condition="$(IsPackable) == 'true'">
<SourceLinkGiteaHost Include="git.kritikos.io"/>
<PackageReference Include="Microsoft.Sbom.Targets" PrivateAssets="All" />
</ItemGroup>
</Project>

View File

@@ -1,11 +1,13 @@
<Project>
<ItemGroup Label="Packages">
<PackageVersion Include="GitVersion.MsBuild" Version="6.4.0" />
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="9.0.6" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageVersion Include="GitVersion.MsBuild" Version="6.5.1" />
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="10.0.3" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageVersion Include="Microsoft.Sbom.Targets" Version="4.1.5" />
<PackageVersion Include="NewStyleCop.Analyzers" Version="1.2.1" />
<PackageVersion Include="NSubstitute.Analyzers.CSharp" Version="1.0.17" />
<PackageVersion Include="NSubstitute" Version="5.3.0" />
<PackageVersion Include="xunit.v3" Version="2.0.2" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.0.2" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
<PackageVersion Include="xunit.v3" Version="3.2.2" />
</ItemGroup>
</Project>

View File

@@ -14,15 +14,16 @@
<File Path="Directory.Packages.props" />
<File Path="dotnet.ruleset" />
<File Path="GitVersion.yml" />
<File Path="stylecop.json" />
<File Path="xunit.runner.json" />
</Folder>
<Folder Name="/samples/">
<File Path="samples\Directory.Build.props" />
</Folder>
<Folder Name="/src/">
<File Path="src\Directory.build.props" />
<File Path="src\Directory.Build.props" />
</Folder>
<Folder Name="/tests/">
<File Path="tests\Directory.Build.props" />
</Folder>
</Solution>
</Solution>

22
dotnet.ruleset Normal file
View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Kritikos Ruleset" Description="Common roslyn analyser configuration" ToolsVersion="10.0">
<Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp" RuleNamespace="Microsoft.CodeAnalysis.CSharp">
<Rule Id="CS1573" Action="None" />
<Rule Id="CS1591" Action="None" />
<Rule Id="CS2008" Action="None" />
</Rules>
<Rules AnalyzerId="Microsoft.CodeQuality.Analyzers" RuleNamespace="Microsoft.CodeQuality.Analyzers">
<Rule Id="CA1303" Action="None" />
<Rule Id="CA1848" Action="None" />
<Rule Id="CA2007" Action="None" />
<Rule Id="CA1707" Action="None" />
</Rules>
<Rules AnalyzerId="SerilogAnalyzer" RuleNamespace="SerilogAnalyzer">
<Rule Id="Serilog004" Action="None" />
</Rules>
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">
<Rule Id="SA1101" Action="None" />
<Rule Id="SA1633" Action="None" />
<Rule Id="SA1649" Action="None" />
</Rules>
</RuleSet>

47
stylecop.json Normal file
View File

@@ -0,0 +1,47 @@
{
"$schema": "https://raw.githubusercontent.com/bjornhellander/NewStyleCopAnalyzers/refs/heads/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json",
"settings": {
"indentation": {
"useTabs": false,
"indentationSize": 2
},
"orderingRules": {
"usingDirectivesPlacement": "outsideNamespace",
"systemUsingDirectivesFirst": true,
"blankLinesBetweenUsingGroups": "require",
"elementOrder": [
"kind",
"accessibility",
"constant",
"static",
"readonly"
]
},
"maintainabilityRules": {
"topLevelTypes": [
"class",
"interface",
"struct",
"enum"
]
},
"namingRules": {
"allowCommonHungarianPrefixes": false,
"includeInferredTupleElementNames": true,
"tupleElementNameCasing": "PascalCase"
},
"layoutRules": {
"newlineAtEndOfFile": "require",
"allowConsecutiveUsings": false,
"allowDoWhileOnClosingBrace": true
},
"readabilityRules": {
"allowBuiltInTypeAliases": false
},
"documentationRules": {
"documentExposedElements": true,
"documentationCulture": "en-US",
"documentInterfaces": true
}
}
}