Skip to content

Commit 28ce729

Browse files
feat(core,ci,docs)!: add .NET 11 preview support, update workflows, fix breaking API changes
Added .NET 11.0.100-preview.6.26359.118 support across all projects, CI/CD workflows, and test scripts, including new TargetFrameworks entries, package references, and conditional build logic. Updated global.json to use .NET 11 preview SDK and allow prerelease. Updated GitHub Actions workflows (build, release, deploy, publish, AOT) to install and test with .NET 11 alongside .NET 9/10. Updated test-aot-compatibility.ps1 to include net11.0, improved error handling for browser smoke tests, and handled DevTools errors more robustly. Updated project files (.csproj) for NTComponents, extensions, analyzers, test apps, and integration tests to support net11.0, add appropriate package references, and adjust trimming/ILLink for .NET 11 preview limitations. Updated README.md and package tags/descriptions to mention .NET 11 support. Fixed generic type constraints in NTCombobox, NTInputDateTime, and TnTInputDateTime to remove DynamicallyAccessedMembers for .NET 11 compatibility. Improved TryParseValueFromString logic for date/time components to handle all supported types explicitly. Updated TnTInputFile disposal logic for .NET 11 override requirements. Updated integration test logic to dynamically select the correct TFM for static web assets. Added a new dependabot.yml for automated dependency updates across NuGet, npm, GitHub Actions, dotnet-sdk, and git submodules. BREAKING CHANGE: Removed DynamicallyAccessedMembers from generic type constraints and updated TnTInputFile disposal logic for .NET 11 compatibility. Consumers targeting .NET 11 may need to update their code to match new API requirements.
1 parent 051c52a commit 28ce729

23 files changed

Lines changed: 300 additions & 41 deletions

.github/dependabot.yml

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# yaml-language-server: $schema=https://json.schemastore.org/dependabot-2.0.json
2+
version: 2
3+
4+
updates:
5+
- package-ecosystem: "nuget"
6+
directories:
7+
- "/LiveTest/LiveTest"
8+
- "/LiveTest/LiveTest.Client"
9+
- "/NTComponents"
10+
- "/NTComponents.Analyzers"
11+
- "/NTComponents.AspNetCore"
12+
- "/NTComponents.CodeDocumentation.Generator"
13+
- "/NTComponents.Extensions"
14+
- "/NTComponents.MCP"
15+
- "/NTComponents.Site"
16+
- "/Tests/AotCompatibility.TestApp"
17+
- "/Tests/NTComponents.Analyzers.Tests"
18+
- "/Tests/NTComponents.IntegrationTests"
19+
- "/Tests/NTComponents.Tests"
20+
schedule:
21+
interval: "weekly"
22+
day: "monday"
23+
time: "06:00"
24+
timezone: "America/Denver"
25+
groups:
26+
nuget-minor-and-patch:
27+
patterns:
28+
- "*"
29+
update-types:
30+
- "minor"
31+
- "patch"
32+
commit-message:
33+
prefix: "chore"
34+
include: "scope"
35+
36+
- package-ecosystem: "npm"
37+
directory: "/"
38+
schedule:
39+
interval: "weekly"
40+
day: "tuesday"
41+
time: "06:00"
42+
timezone: "America/Denver"
43+
groups:
44+
npm-minor-and-patch:
45+
patterns:
46+
- "*"
47+
update-types:
48+
- "minor"
49+
- "patch"
50+
commit-message:
51+
prefix: "chore"
52+
include: "scope"
53+
54+
- package-ecosystem: "github-actions"
55+
directory: "/"
56+
schedule:
57+
interval: "weekly"
58+
day: "wednesday"
59+
time: "06:00"
60+
timezone: "America/Denver"
61+
groups:
62+
actions-minor-and-patch:
63+
patterns:
64+
- "*"
65+
update-types:
66+
- "minor"
67+
- "patch"
68+
commit-message:
69+
prefix: "chore"
70+
include: "scope"
71+
72+
- package-ecosystem: "dotnet-sdk"
73+
directory: "/"
74+
schedule:
75+
interval: "weekly"
76+
day: "thursday"
77+
time: "06:00"
78+
timezone: "America/Denver"
79+
commit-message:
80+
prefix: "chore"
81+
include: "scope"
82+
83+
- package-ecosystem: "gitsubmodule"
84+
directory: "/"
85+
schedule:
86+
interval: "weekly"
87+
day: "friday"
88+
time: "06:00"
89+
timezone: "America/Denver"
90+
commit-message:
91+
prefix: "chore"
92+
include: "scope"

.github/workflows/build-template.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
8.0.x
2929
9.0.x
3030
10.0.x
31+
11.0.100-preview.6.26359.118
3132
3233
- name: Setup Node.js
3334
uses: actions/setup-node@v4
@@ -61,6 +62,10 @@ jobs:
6162
project: Tests/NTComponents.Tests/NTComponents.Tests.csproj
6263
framework: net10.0
6364
install-playwright: false
65+
- name: ntcomponents-net11
66+
project: Tests/NTComponents.Tests/NTComponents.Tests.csproj
67+
framework: net11.0
68+
install-playwright: false
6469
- name: ntcomponents-integration-net9
6570
project: Tests/NTComponents.IntegrationTests/NTComponents.IntegrationTests.csproj
6671
framework: net9.0
@@ -69,6 +74,10 @@ jobs:
6974
project: Tests/NTComponents.IntegrationTests/NTComponents.IntegrationTests.csproj
7075
framework: net10.0
7176
install-playwright: true
77+
- name: ntcomponents-integration-net11
78+
project: Tests/NTComponents.IntegrationTests/NTComponents.IntegrationTests.csproj
79+
framework: net11.0
80+
install-playwright: true
7281
- name: analyzers-net10
7382
project: Tests/NTComponents.Analyzers.Tests/NTComponents.Analyzers.Tests.csproj
7483
framework: net10.0
@@ -86,6 +95,7 @@ jobs:
8695
8.0.x
8796
9.0.x
8897
10.0.x
98+
11.0.100-preview.6.26359.118
8999
90100
- name: Setup Node.js
91101
uses: actions/setup-node@v4
@@ -153,7 +163,7 @@ jobs:
153163
- name: Setup .NET SDK
154164
uses: actions/setup-dotnet@v4
155165
with:
156-
dotnet-version: 10.0.x
166+
dotnet-version: 11.0.100-preview.6.26359.118
157167

158168
- name: Install dotnet-coverage
159169
run: dotnet tool install --global dotnet-coverage

.github/workflows/deploy-production.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ jobs:
2929
- name: Setup .NET SDK
3030
uses: actions/setup-dotnet@v5
3131
with:
32-
dotnet-version: 10.0.x
32+
dotnet-version: |
33+
10.0.x
34+
11.0.100-preview.6.26359.118
3335
3436
- name: Restore WebAssembly workloads
3537
run: dotnet workload restore ./NTComponents.Site/NTComponents.Site.csproj

.github/workflows/ensure-aot-build.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
strategy:
2323
fail-fast: false
2424
matrix:
25-
tfm: [ 'net9.0', 'net10.0' ]
25+
tfm: [ 'net9.0', 'net10.0', 'net11.0' ]
2626
runner:
2727
- name: Windows x64
2828
os: windows-latest
@@ -40,7 +40,7 @@ jobs:
4040
timeout-minutes: 20
4141
# determine dotnet SDK version from the TFM (job-level env to avoid schema ambiguity)
4242
env:
43-
DOTNET_VERSION: ${{ matrix.tfm == 'net10.0' && '10.0.x' || '9.0.x' }}
43+
DOTNET_VERSION: ${{ matrix.tfm == 'net11.0' && '11.0.100-preview.6.26359.118' || matrix.tfm == 'net10.0' && '10.0.x' || '9.0.x' }}
4444

4545
steps:
4646
- uses: actions/checkout@v4
@@ -51,6 +51,7 @@ jobs:
5151
dotnet-version: |
5252
8.0.x
5353
${{ env.DOTNET_VERSION }}
54+
11.0.100-preview.6.26359.118
5455
5556
- name: Cache NuGet packages
5657
uses: actions/cache@v4

.github/workflows/publish-prerelease.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ jobs:
2727
8.0.x
2828
9.0.x
2929
10.0.x
30+
11.0.100-preview.6.26359.118
3031
3132
- name: Setup Node.js
3233
uses: actions/setup-node@v4
@@ -105,6 +106,7 @@ jobs:
105106
8.0.x
106107
9.0.x
107108
10.0.x
109+
11.0.100-preview.6.26359.118
108110
109111
- name: Setup Node.js
110112
if: steps.check-tags.outputs.is_tagged == 'false'

.github/workflows/release.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ jobs:
3030
8.0.x
3131
9.0.x
3232
10.0.x
33+
11.0.100-preview.6.26359.118
3334
3435
- name: Setup Node.js
3536
uses: actions/setup-node@v4
@@ -208,7 +209,7 @@ jobs:
208209
- name: Setup .NET SDK
209210
uses: actions/setup-dotnet@v4
210211
with:
211-
dotnet-version: 10.0.x
212+
dotnet-version: 11.0.100-preview.6.26359.118
212213

213214
- name: Resolve stable release version
214215
id: release-version

LiveTest/LiveTest.Client/LiveTest.Client.csproj

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,21 @@
11
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net9.0;net10.0</TargetFrameworks>
4+
<TargetFrameworks>net9.0;net10.0;net11.0</TargetFrameworks>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
<NoDefaultLaunchSettingsFile>true</NoDefaultLaunchSettingsFile>
88
<StaticWebAssetProjectMode>Default</StaticWebAssetProjectMode>
99
</PropertyGroup>
1010

11+
<PropertyGroup Condition="'$(TargetFramework)' == 'net11.0'">
12+
<WasmBuildNative>false</WasmBuildNative>
13+
</PropertyGroup>
14+
15+
<ItemGroup Condition="'$(TargetFramework)' == 'net11.0'">
16+
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="11.0.0-preview.6.26359.118" />
17+
</ItemGroup>
18+
1119
<PropertyGroup Condition="'$(TargetFramework)' == 'net10.0'">
1220
<WasmBuildNative>true</WasmBuildNative>
1321
</PropertyGroup>

LiveTest/LiveTest/LiveTest.csproj

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

33
<PropertyGroup>
4-
<TargetFrameworks>net9.0;net10.0</TargetFrameworks>
4+
<TargetFrameworks>net9.0;net10.0;net11.0</TargetFrameworks>
55
<Nullable>enable</Nullable>
66
<ImplicitUsings>enable</ImplicitUsings>
77
</PropertyGroup>
@@ -19,6 +19,10 @@
1919
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
2020
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="10.0.9" />
2121
</ItemGroup>
22+
23+
<ItemGroup Condition="'$(TargetFramework)' == 'net11.0'">
24+
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="11.0.0-preview.6.26359.118" />
25+
</ItemGroup>
2226
<ItemGroup>
2327
<Folder Include="wwwroot\Themes\" />
2428
</ItemGroup>

NTComponents.AspNetCore/NTComponents.AspNetCore.csproj

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

33
<PropertyGroup>
4-
<TargetFrameworks>net9.0;net10.0</TargetFrameworks>
4+
<TargetFrameworks>net9.0;net10.0;net11.0</TargetFrameworks>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
<Authors>NT Technologies</Authors>
@@ -11,7 +11,7 @@
1111
<IsTrimmable>True</IsTrimmable>
1212
<IsAotCompatible>True</IsAotCompatible>
1313
<PackageReadmeFile>README.md</PackageReadmeFile>
14-
<PackageTags>Blazor;Components;AspNetCore;.NET8;.NET9</PackageTags>
14+
<PackageTags>Blazor;Components;AspNetCore;.NET9;.NET10;.NET11</PackageTags>
1515
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1616
<PackageIcon>Logo.png</PackageIcon>
1717
</PropertyGroup>

NTComponents.Extensions/NTComponents.Extensions.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net9.0;net10.0</TargetFrameworks>
4+
<TargetFrameworks>net9.0;net10.0;net11.0</TargetFrameworks>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
<Authors>NT Technologies</Authors>
88
<Company>NT Technologies</Company>
99
<PackageProjectUrl>https://github.com/Notallthatevil/NTComponents</PackageProjectUrl>
1010
<PackageReadmeFile>README.md</PackageReadmeFile>
1111
<RepositoryUrl>https://github.com/Notallthatevil/NTComponents</RepositoryUrl>
12-
<PackageTags>Blazor;Components;.NET9;.NET10</PackageTags>
12+
<PackageTags>Blazor;Components;.NET9;.NET10;.NET11</PackageTags>
1313
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1414
<PackageIcon>Logo.png</PackageIcon>
1515

0 commit comments

Comments
 (0)