Skip to content

Commit c11c0c2

Browse files
committed
Run tests and examples against .NET 9
1 parent 55f671c commit c11c0c2

File tree

24 files changed

+65
-20
lines changed

24 files changed

+65
-20
lines changed

.config/dotnet-tools.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"isRoot": true,
44
"tools": {
55
"jetbrains.resharper.globaltools": {
6-
"version": "2024.2.7",
6+
"version": "2024.3.0",
77
"commands": [
88
"jb"
99
],

.github/workflows/build.yml

+3
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ jobs:
4848
dotnet-version: |
4949
6.0.x
5050
8.0.x
51+
9.0.x
5152
- name: Show installed versions
5253
shell: pwsh
5354
run: |
@@ -166,6 +167,7 @@ jobs:
166167
dotnet-version: |
167168
6.0.x
168169
8.0.x
170+
9.0.x
169171
- name: Git checkout
170172
uses: actions/checkout@v4
171173
- name: Restore tools
@@ -221,6 +223,7 @@ jobs:
221223
dotnet-version: |
222224
6.0.x
223225
8.0.x
226+
9.0.x
224227
- name: Git checkout
225228
uses: actions/checkout@v4
226229
with:

.github/workflows/codeql.yml

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ jobs:
2929
dotnet-version: |
3030
6.0.x
3131
8.0.x
32+
9.0.x
3233
- name: Git checkout
3334
uses: actions/checkout@v4
3435
- name: Initialize CodeQL

Directory.Build.props

+6
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@
2424
<NoWarn>$(NoWarn);$(UseCollectionExpressionRules)</NoWarn>
2525
</PropertyGroup>
2626

27+
<!-- Specific to .NET 9 -->
28+
<PropertyGroup>
29+
<NuGetAuditMode>direct</NuGetAuditMode>
30+
<NoWarn>$(NoWarn);NU1608;NETSDK1215</NoWarn>
31+
</PropertyGroup>
32+
2733
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
2834
<NoWarn>$(NoWarn);AV2210</NoWarn>
2935
</PropertyGroup>

NuGet.config

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<packageSources>
4+
<add key="pomelo-nightly"
5+
value="https://pkgs.dev.azure.com/pomelo-efcore/Pomelo.EntityFrameworkCore.MySql/_packaging/pomelo-efcore-public/nuget/v3/index.json" />
6+
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
7+
</packageSources>
8+
</configuration>

package-versions.props

+13
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,25 @@
2020
<XunitVisualStudioVersion>2.8.*</XunitVisualStudioVersion>
2121
</PropertyGroup>
2222

23+
<PropertyGroup Condition="'$(TargetFramework)' == 'net9.0'">
24+
<!-- Published dependencies (only update on major version change) -->
25+
<EntityFrameworkCoreFrozenVersion>N/A</EntityFrameworkCoreFrozenVersion>
26+
27+
<!-- Non-published dependencies (these are safe to update, won't cause a breaking change) -->
28+
<AspNetCoreVersion>9.0.*</AspNetCoreVersion>
29+
<EntityFrameworkCoreVersion>9.0.*</EntityFrameworkCoreVersion>
30+
<EntityFrameworkCorePomeloVersion>9.0.0-*</EntityFrameworkCorePomeloVersion>
31+
<SystemTextJsonVersion>$(AspNetCoreVersion)</SystemTextJsonVersion>
32+
</PropertyGroup>
33+
2334
<PropertyGroup Condition="'$(TargetFramework)' == 'net8.0'">
2435
<!-- Published dependencies (only update on major version change) -->
2536
<EntityFrameworkCoreFrozenVersion>8.0.0</EntityFrameworkCoreFrozenVersion>
2637

2738
<!-- Non-published dependencies (these are safe to update, won't cause a breaking change) -->
2839
<AspNetCoreVersion>8.0.*</AspNetCoreVersion>
2940
<EntityFrameworkCoreVersion>8.0.*</EntityFrameworkCoreVersion>
41+
<EntityFrameworkCorePomeloVersion>$(EntityFrameworkCoreVersion)</EntityFrameworkCorePomeloVersion>
3042
<SystemTextJsonVersion>$(AspNetCoreVersion)</SystemTextJsonVersion>
3143
</PropertyGroup>
3244

@@ -38,6 +50,7 @@
3850
<AspNetCoreVersion>6.0.*</AspNetCoreVersion>
3951
<DateOnlyTimeOnlyVersion>2.1.*</DateOnlyTimeOnlyVersion>
4052
<EntityFrameworkCoreVersion>7.0.*</EntityFrameworkCoreVersion>
53+
<EntityFrameworkCorePomeloVersion>$(EntityFrameworkCoreVersion)</EntityFrameworkCorePomeloVersion>
4154
<SystemTextJsonVersion>8.0.*</SystemTextJsonVersion>
4255
</PropertyGroup>
4356
</Project>

src/Examples/DapperExample/DapperExample.csproj

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\..\package-versions.props" />
@@ -16,6 +16,11 @@
1616
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="$(EntityFrameworkCoreVersion)" />
1717
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="$(EntityFrameworkCoreVersion)" />
1818
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="$(EntityFrameworkCoreVersion)" />
19-
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="$(EntityFrameworkCoreVersion)" />
19+
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="$(EntityFrameworkCorePomeloVersion)" />
20+
</ItemGroup>
21+
22+
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
23+
<!-- Temporary workaround for version range constraint on Pomelo.EntityFrameworkCore.MySql pre-release package -->
24+
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="$(EntityFrameworkCoreVersion)" />
2025
</ItemGroup>
2126
</Project>

src/Examples/DapperExample/Program.cs

+7-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,13 @@
3131
}
3232
case DatabaseProvider.MySql:
3333
{
34-
builder.Services.AddMySql<AppDbContext>(connectionString, ServerVersion.AutoDetect(connectionString),
35-
optionsAction: options => SetDbContextDebugOptions(options));
34+
#if NET9_0_OR_GREATER
35+
ServerVersion serverVersion = await ServerVersion.AutoDetectAsync(connectionString);
36+
#else
37+
ServerVersion serverVersion = ServerVersion.AutoDetect(connectionString);
38+
#endif
39+
40+
builder.Services.AddMySql<AppDbContext>(connectionString, serverVersion, optionsAction: options => SetDbContextDebugOptions(options));
3641

3742
break;
3843
}

src/Examples/DatabasePerTenantExample/DatabasePerTenantExample.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\..\package-versions.props" />

src/Examples/GettingStarted/GettingStarted.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\..\package-versions.props" />

src/Examples/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\..\package-versions.props" />

src/Examples/MultiDbContextExample/MultiDbContextExample.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\..\package-versions.props" />

src/Examples/NoEntityFrameworkExample/NoEntityFrameworkExample.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\..\package-versions.props" />

src/Examples/ReportsExample/ReportsExample.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\..\package-versions.props" />

test/AnnotationTests/AnnotationTests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0;netstandard2.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0;netstandard2.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\package-versions.props" />

test/DapperTests/DapperTests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\package-versions.props" />

test/DiscoveryTests/DiscoveryTests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\package-versions.props" />

test/JsonApiDotNetCoreTests/JsonApiDotNetCoreTests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\package-versions.props" />

test/MultiDbContextTests/MultiDbContextTests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\package-versions.props" />

test/NoEntityFrameworkTests/NoEntityFrameworkTests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\package-versions.props" />

test/SourceGeneratorTests/SourceGeneratorTests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\package-versions.props" />

test/TestBuildingBlocks/CapturingLoggerProvider.cs

+4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ public sealed class CapturingLoggerProvider : ILoggerProvider
1010
private static readonly Func<string, LogLevel, bool> DefaultFilter = (_, _) => true;
1111
private readonly Func<string, LogLevel, bool> _filter;
1212

13+
#if NET9_0_OR_GREATER
14+
private readonly Lock _lockObject = new();
15+
#else
1316
private readonly object _lockObject = new();
17+
#endif
1418
private readonly List<LogMessage> _messages = [];
1519

1620
public CapturingLoggerProvider()

test/TestBuildingBlocks/TestBuildingBlocks.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\package-versions.props" />

test/UnitTests/UnitTests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
3+
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
44
</PropertyGroup>
55

66
<Import Project="..\..\package-versions.props" />

0 commit comments

Comments
 (0)