Skip to content

Commit 862323d

Browse files
committed
Update solution structure for .NET 10 support and introduce central package management
1 parent 0c4f894 commit 862323d

File tree

12 files changed

+93
-112
lines changed

12 files changed

+93
-112
lines changed

.github/workflows/onPullRequest-TestDotnet.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@ jobs:
1717
- name: Setup .NET
1818
uses: actions/setup-dotnet@v5
1919
with:
20-
dotnet-version: '9.x'
20+
dotnet-version: |
21+
9.x
22+
10.x
2123
2224
- name: Restore dependencies
23-
run: dotnet restore CodeOfChaos.CliArgsParser.sln
25+
run: dotnet restore CodeOfChaos.CliArgsParser.slnx
2426

2527
- name: Build
26-
run: dotnet build CodeOfChaos.CliArgsParser.sln --configuration Release --no-restore -p:GeneratePackageOnBuild=false -p:IsPackable=false
28+
run: dotnet build CodeOfChaos.CliArgsParser.slnx --configuration Release --no-restore -p:GeneratePackageOnBuild=false -p:IsPackable=false
2729

2830
- name: Run tests
29-
run: dotnet test CodeOfChaos.CliArgsParser.sln --configuration Release --no-restore --no-build
31+
run: dotnet test CodeOfChaos.CliArgsParser.slnx --configuration Release --no-restore --no-build

.github/workflows/release.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,25 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- name: Checkout repository
13-
uses: actions/checkout@v4
13+
uses: actions/checkout@v5
1414

1515
- name: Setup .NET
16-
uses: actions/setup-dotnet@v4
16+
uses: actions/setup-dotnet@v5
1717
with:
18-
dotnet-version: '9.x'
18+
dotnet-version: |
19+
9.x
20+
10.x
1921
2022
- name: Restore dependencies
21-
run: dotnet restore CodeOfChaos.CliArgsParser.sln
23+
run: dotnet restore CodeOfChaos.CliArgsParser.slnx
2224

2325
- name: Build
24-
run: dotnet build CodeOfChaos.CliArgsParser.sln --configuration Release --no-restore
26+
run: dotnet build CodeOfChaos.CliArgsParser.slnx --configuration Release --no-restore
2527

2628
# Ensure that the tests must pass
2729
# The job will fail automatically if any test fails because `dotnet test` exits with a non-zero code
2830
- name: Run tests
29-
run: dotnet test CodeOfChaos.CliArgsParser.sln -c Release --no-restore --no-build
31+
run: dotnet test CodeOfChaos.CliArgsParser.slnx -c Release --no-restore --no-build
3032

3133
- name: Publish to NuGet
3234
env:

CodeOfChaos.CliArgsParser.sln

Lines changed: 0 additions & 79 deletions
This file was deleted.

CodeOfChaos.CliArgsParser.slnx

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<Solution>
2+
<Folder Name="/.dev-tools/">
3+
<File Path="Directory.Packages.props" />
4+
<Project Path="src/Tools.CodeOfChaos.CliArgsParser/Tools.CodeOfChaos.CliArgsParser.csproj" />
5+
</Folder>
6+
<Folder Name="/.dev-tools/github/">
7+
<File Path=".github/workflows/onPullRequest-TestDotnet.yml" />
8+
<File Path=".github/workflows/release.yml" />
9+
<File Path=".github/workflows/workflow-todo.yml" />
10+
</Folder>
11+
<Folder Name="/example/">
12+
<Project Path="src/Sample.CodeOfChaos.CliArgsParser/Sample.CodeOfChaos.CliArgsParser.csproj" />
13+
</Folder>
14+
<Folder Name="/src/">
15+
<Project Path="src/CodeOfChaos.CliArgsParser.Contracts/CodeOfChaos.CliArgsParser.Contracts.csproj" />
16+
<Project Path="src/CodeOfChaos.CliArgsParser.Generators/CodeOfChaos.CliArgsParser.Generators.csproj" />
17+
<Project Path="src/CodeOfChaos.CliArgsParser.Library/CodeOfChaos.CliArgsParser.Library.csproj" />
18+
<Project Path="src/CodeOfChaos.CliArgsParser/CodeOfChaos.CliArgsParser.csproj" />
19+
</Folder>
20+
<Folder Name="/tests/">
21+
<Project Path="tests/Tests.CodeOfChaos.CliArgsParser/Tests.CodeOfChaos.CliArgsParser.csproj" />
22+
</Folder>
23+
</Solution>

Directory.Packages.props

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<Project>
2+
<PropertyGroup>
3+
<!-- Enable central package management, https://learn.microsoft.com/en-us/nuget/consume-packages/Central-Package-Management -->
4+
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
5+
</PropertyGroup>
6+
<!-- .NET 9 -->
7+
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
8+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="[9.0.11, 10.0.0)" />
9+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[9.0.11, 10.0.0)" />
10+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="[9.0.11, 10.0.0)" />
11+
</ItemGroup>
12+
<!-- .NET 10 -->
13+
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
14+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0" />
15+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.0" />
16+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0" />
17+
</ItemGroup>
18+
<!-- Common packages for all frameworks -->
19+
<ItemGroup>
20+
<PackageVersion Include="Bogus" Version="35.6.5" />
21+
<PackageVersion Include="CodeOfChaos.Ansi" Version="1.1.0" />
22+
<PackageVersion Include="CodeOfChaos.Extensions" Version="0.83.2" />
23+
<PackageVersion Include="CodeOfChaos.GeneratorTools" Version="2.2.1"/>
24+
<PackageVersion Include="IndexRange" Version="1.1.0" />
25+
<PackageVersion Include="IsExternalInit" Version="1.0.3"/>
26+
<PackageVersion Include="JetBrains.Annotations" Version="2025.2.2" />
27+
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="4.14.0" />
28+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" />
29+
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.14.0" />
30+
<PackageVersion Include="Moq" Version="4.20.72"/>
31+
<PackageVersion Include="TUnit" Version="1.0.48" />
32+
</ItemGroup>
33+
</Project>

src/CodeOfChaos.CliArgsParser.Contracts/CodeOfChaos.CliArgsParser.Contracts.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net9.0</TargetFramework>
4+
<TargetFrameworks>net9.0;net10.0</TargetFrameworks>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
<RootNamespace>CodeOfChaos.CliArgsParser</RootNamespace>

src/CodeOfChaos.CliArgsParser.Generators/CodeOfChaos.CliArgsParser.Generators.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@
3232
</ItemGroup>
3333

3434
<ItemGroup>
35-
<PackageReference Include="IndexRange" Version="1.1.0" />
36-
<PackageReference Include="IsExternalInit" Version="1.0.3">
35+
<PackageReference Include="IndexRange" />
36+
<PackageReference Include="IsExternalInit">
3737
<PrivateAssets>all</PrivateAssets>
3838
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
3939
</PackageReference>
40-
<PackageReference Include="JetBrains.Annotations" Version="2025.2.2" />
41-
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="4.14.0" PrivateAssets="all" />
42-
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.14.0" PrivateAssets="all" />
43-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" PrivateAssets="all" />
44-
<PackageReference Include="CodeOfChaos.GeneratorTools" Version="2.2.1" Pack="true" GeneratePathProperty="true">
40+
<PackageReference Include="JetBrains.Annotations" />
41+
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" PrivateAssets="all" />
42+
<PackageReference Include="Microsoft.CodeAnalysis.Common" PrivateAssets="all" />
43+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" PrivateAssets="all" />
44+
<PackageReference Include="CodeOfChaos.GeneratorTools" Pack="true" GeneratePathProperty="true">
4545
<PrivateAssets>all</PrivateAssets>
4646
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
4747
</PackageReference>

src/CodeOfChaos.CliArgsParser.Library/CodeOfChaos.CliArgsParser.Library.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net9.0</TargetFramework>
3+
<TargetFrameworks>net9.0;net10.0</TargetFrameworks>
44
<LangVersion>latest</LangVersion>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
@@ -35,6 +35,6 @@
3535
</ItemGroup>
3636

3737
<ItemGroup>
38-
<PackageReference Include="CodeOfChaos.Ansi" Version="1.0.0" />
38+
<PackageReference Include="CodeOfChaos.Ansi"/>
3939
</ItemGroup>
4040
</Project>

src/CodeOfChaos.CliArgsParser/CodeOfChaos.CliArgsParser.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net9.0</TargetFramework>
3+
<TargetFrameworks>net9.0;net10.0</TargetFrameworks>
44
<ImplicitUsings>enable</ImplicitUsings>
55
<Nullable>enable</Nullable>
66
<IsPackable>true</IsPackable>
@@ -32,9 +32,9 @@
3232
</ItemGroup>
3333

3434
<ItemGroup>
35-
<PackageReference Include="CodeOfChaos.Extensions" Version="0.83.2" />
36-
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.10" />
37-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.10" />
35+
<PackageReference Include="CodeOfChaos.Extensions" />
36+
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
37+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
3838
</ItemGroup>
3939

4040
</Project>

src/Sample.CodeOfChaos.CliArgsParser/Sample.CodeOfChaos.CliArgsParser.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net9.0</TargetFramework>
4+
<TargetFrameworks>net9.0;net10.0</TargetFrameworks>
55
<Nullable>enable</Nullable>
66
<OutputType>Exe</OutputType>
77
</PropertyGroup>

0 commit comments

Comments
 (0)