feat: initialize Geekeey Arcade .NET SDK repository
All checks were successful
CI / build (push) Successful in 3m26s
All checks were successful
CI / build (push) Successful in 3m26s
Single-commit squash of the repository history containing the Arcade .NET MSBuild SDK packages (base, Razor, Web, Test), their analyzer and editorconfig configuration, test suites, and CI workflows.
This commit is contained in:
commit
5cbf26e8a1
5 changed files with 1905 additions and 0 deletions
|
|
@ -0,0 +1,23 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<NoBuild>true</NoBuild>
|
||||
<IncludeBuildOutput>false</IncludeBuildOutput>
|
||||
<SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
|
||||
<IncludeSymbols>false</IncludeSymbols>
|
||||
<IsPackable>true</IsPackable>
|
||||
<!-- The packaging project is not a testing platform application itself: the Microsoft.Testing.Platform
|
||||
package flows to consumers and defaults 'IsTestingPlatformApplication' to true there. -->
|
||||
<IsTestingPlatformApplication>false</IsTestingPlatformApplication>
|
||||
<Description>MSBuild SDK for test projects with standardized build, analyzer, and editor configuration defaults.</Description>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="Sdk.props" Pack="true" PackagePath="Sdk/Sdk.props" />
|
||||
<None Include="Sdk.targets" Pack="true" PackagePath="Sdk/Sdk.targets" />
|
||||
<None Include="Geekeey.Arcade.NET.Sdk.Test.editorconfig" Pack="true" PackagePath="configuration/Geekeey.Arcade.NET.Sdk.Test.editorconfig" />
|
||||
<None Include="../../common/Common.props" Pack="true" PackagePath="common/Common.props" />
|
||||
<None Include="../../common/Common.targets" Pack="true" PackagePath="common/Common.targets" />
|
||||
<None Include="../../configuration/**/*" Pack="true" PackagePath="configuration/%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
# global_level must be higher than the base editorconfig files
|
||||
is_global = true
|
||||
global_level = 1
|
||||
|
||||
# Identifiers should not contain underscores (CA1707)
|
||||
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1707
|
||||
dotnet_diagnostic.CA1707.severity = none
|
||||
|
||||
# Mark members as static (CA1822)
|
||||
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1822
|
||||
dotnet_diagnostic.CA1822.severity = none
|
||||
|
||||
# Make method synchronous (IDE0390 and IDE0391)
|
||||
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0390-ide0391
|
||||
dotnet_diagnostic.IDE0390.severity = none
|
||||
dotnet_diagnostic.IDE0391.severity = none
|
||||
|
||||
# Remove unused parameter (IDE0060)
|
||||
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0060
|
||||
dotnet_diagnostic.IDE0060.severity = none
|
||||
31
src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/PACKAGE.md
Normal file
31
src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/PACKAGE.md
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# Geekeey.Arcade.NET.Sdk.Test
|
||||
|
||||
Opinionated MSBuild SDK for test projects with standardized build, analyzer, and editor configuration defaults.
|
||||
|
||||
## Getting started
|
||||
|
||||
```xml
|
||||
<Project Sdk="Geekeey.Arcade.NET.Sdk.Test/1.0.0">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
```
|
||||
|
||||
## What it provides
|
||||
|
||||
- Everything from the base `Geekeey.Arcade.NET.Sdk` (language, analyzer, editor, and packaging defaults), layered on top of the `Microsoft.NET.Sdk` SDK.
|
||||
- Marks consuming projects as test projects by setting `IsTestProject=true` automatically.
|
||||
- `Microsoft.Testing.Platform.MSBuild` integration out of the box.
|
||||
- Opinionated `.editorconfig` settings for test projects, applied automatically via `EditorConfigFiles` (including file-based programs when `FileBasedProgram=true`).
|
||||
|
||||
## Opt-outs
|
||||
|
||||
| Property | Effect |
|
||||
| --- | --- |
|
||||
| `EnableDefaultJsonSerializationOptions=false` | Skips the `System.Text.Json` nullable annotation defaults. |
|
||||
| `IncludeDefaultBannedSymbols=false` | Skips the built-in `BannedSymbols.txt`. |
|
||||
| `BannedNewtonsoftJsonSymbols=false` | Skips the built-in `BannedSymbols.NewtonsoftJson.txt`. |
|
||||
| `SearchReadmeFileAbove=true` | Also searches parent directories for a `PACKAGE.md` to pack. |
|
||||
|
||||
See the [repository](https://code.geekeey.de/geekeey/arcade) for the full configuration.
|
||||
17
src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Sdk.props
Normal file
17
src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Sdk.props
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<IsTestProject>true</IsTestProject>
|
||||
<_MustImportMicrosoftNETSdk Condition="'$(UsingMicrosoftNETSdk)' != 'true'">true</_MustImportMicrosoftNETSdk>
|
||||
|
||||
<CustomBeforeDirectoryBuildProps>$(CustomBeforeDirectoryBuildProps);$(MSBuildThisFileDirectory)../common/Common.props</CustomBeforeDirectoryBuildProps>
|
||||
<BeforeMicrosoftNETSdkTargets>$(BeforeMicrosoftNETSdkTargets);$(MSBuildThisFileDirectory)/../common/Common.targets</BeforeMicrosoftNETSdkTargets>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" Condition="'$(_MustImportMicrosoftNETSdk)' == 'true'" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)../common/Common.props" Condition="'$(_MustImportMicrosoftNETSdk)' != 'true'" />
|
||||
|
||||
<ItemGroup>
|
||||
<EditorConfigFiles Include="$(MSBuildThisFileDirectory)../configuration/Geekeey.Arcade.NET.Sdk.Test.editorconfig" />
|
||||
<EditorConfigFiles Include="$(MSBuildThisFileDirectory)../configuration/Geekeey.Arcade.NET.FileBasedProgram.editorconfig" Condition="'$(FileBasedProgram)' == 'true'" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
3
src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Sdk.targets
Normal file
3
src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Sdk.targets
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<Project>
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" Condition="'$(_MustImportMicrosoftNETSdk)' == 'true'" />
|
||||
</Project>
|
||||
Loading…
Reference in a new issue