Skip to content

Commit 02518c4

Browse files
authored
Added support for .NET 8 (#1137)
* Added support for .NET 8 - Updated test and sample projects to supports .NET 8 - Fixed compile warnings and errors including CS8352, CA1416 - Initial update to the tests workflow (runtests.yml) - Removed previously deleted items from the solution file. * Fixing workflow errors and warnings - Added .NET 3.1 - Removed include-prerelease: false - Upgraded actions/cache to v4 (from v1) * Update runtests.yml - Run tests in release mode (as the benchmark) - Upgraded the actions/checkout (v2 to v4) * Add test solutions to reduce unnecessary nuget package restore - nuget restore is currently the longest running work on the workflow. - initial attempt to improve it * Removed CS0618 in debug mode, updated release notes.
1 parent 030ac29 commit 02518c4

31 files changed

+284
-112
lines changed

.github/workflows/runtests.yml

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
name: Testsuite
22

33
on:
4-
[push, pull_request]
4+
workflow_dispatch: # Allows manual triggering of workflow
5+
push:
6+
branches: [ "master" ]
7+
pull_request:
8+
branches: [ "master" ]
59

610
jobs:
711
test:
@@ -11,36 +15,37 @@ jobs:
1115
matrix:
1216
os: [windows-latest]
1317
# os: [windows-latest, ubuntu-latest]
14-
framework: [netcoreapp3.1, net6.0, net462]
18+
framework: [net8.0, net6.0, netcoreapp3.1, net462]
1519
steps:
1620
- name: Checkout source
17-
uses: actions/checkout@v2
21+
uses: actions/checkout@v4
1822
with:
1923
fetch-depth: 0 # needed for GitVersioning to work
2024
- name: Setup NuGet
2125
uses: NuGet/setup-nuget@v1
2226
- name: Cache NuGet packages
23-
uses: actions/cache@v1
27+
uses: actions/cache@v4
2428
id: cache
2529
with:
2630
path: ~/.nuget/packages
2731
key: ${{ runner.os }}-nuget }}
28-
- name: Setup .NET 3.1 SDK
29-
uses: actions/setup-dotnet@v3
32+
- name: Setup .NET 3.1/8.0 SDK
33+
uses: actions/setup-dotnet@v4
3034
with:
31-
dotnet-version: 3.1.x
32-
include-prerelease: false
35+
dotnet-version: |
36+
3.1.x
37+
8.0.x
3338
- name: Restore NuGet Packages
3439
if: steps.cache.outputs.cache-hit != 'true'
3540
run: |
36-
nuget restore Source/Svg.sln
37-
nuget install NUnit.ConsoleRunner -Version 3.10.0 -OutputDirectory tools
41+
nuget restore Tests/Svg.UnitTests.sln
42+
nuget install NUnit.ConsoleRunner -Version 3.17.0 -OutputDirectory tools
3843
- name: Run tests
3944
env:
4045
DOTNET_NOLOGO: true
4146
DOTNET_CLI_TELEMETRY_OPTOUT: true
4247
run: |
43-
dotnet test --framework ${{ matrix.framework }} Tests/Svg.UnitTests/Svg.UnitTests.csproj
48+
dotnet test -c Release -f ${{ matrix.framework }} Tests/Svg.UnitTests/Svg.UnitTests.csproj
4449
4550
benchmark:
4651
runs-on: ${{ matrix.os }}
@@ -49,29 +54,28 @@ jobs:
4954
benchmark: [SvgDocument, SvgPathBuilder, SvgTransformConverter, CoordinateParser]
5055
os: [windows-latest]
5156
# os: [windows-latest, ubuntu-latest]
52-
framework: [netcoreapp3.1]
57+
framework: [net8.0]
5358
steps:
5459
- name: Checkout source
55-
uses: actions/checkout@v2
60+
uses: actions/checkout@v4
5661
with:
5762
fetch-depth: 0
5863
- name: Setup NuGet
5964
uses: NuGet/setup-nuget@v1
6065
- name: Cache NuGet packages
61-
uses: actions/cache@v1
66+
uses: actions/cache@v4
6267
id: cache
6368
with:
6469
path: ~/.nuget/packages
6570
key: ${{ runner.os }}-nuget-bench }}
66-
- name: Setup .NET 3.1 SDK
67-
uses: actions/setup-dotnet@v3
71+
- name: Setup .NET 8.x SDK
72+
uses: actions/setup-dotnet@v4
6873
with:
69-
dotnet-version: 3.1.x
70-
include-prerelease: false
74+
dotnet-version: 8.0.x
7175
- name: Restore NuGet Packages
7276
if: steps.cache.outputs.cache-hit != 'true'
7377
run: |
74-
nuget restore Source/Svg.sln
78+
nuget restore Tests/Svg.Benchmark.sln
7579
- name: Run benchmarks
7680
env:
7781
DOTNET_NOLOGO: true

Generators/Svg.Generators.csproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@
88
<Nullable>enable</Nullable>
99
<LangVersion>latest</LangVersion>
1010
<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules>
11+
<Configurations>Debug;Release</Configurations>
12+
</PropertyGroup>
13+
14+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
15+
</PropertyGroup>
16+
17+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
18+
<NoWarn>$(NoWarn);CS1591;CS0618</NoWarn>
1119
</PropertyGroup>
1220

1321
<ItemGroup>

Samples/Entities/Entities.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
55
<TargetFrameworks>netcoreapp3.1;net462</TargetFrameworks>
6+
<Configurations>Debug;Release</Configurations>
67
</PropertyGroup>
78

89
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
9-
<NoWarn>$(NoWarn);CS0618;NETSDK1138</NoWarn>
10+
<NoWarn>$(NoWarn);NETSDK1138</NoWarn>
1011
</PropertyGroup>
1112
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
1213
<NoWarn>$(NoWarn);CS1591;CS0618;NETSDK1138</NoWarn>

Samples/SVGBuilder/Properties/AssemblyInfo.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,6 @@
3434
// [assembly: AssemblyVersion("1.0.*")]
3535
[assembly: AssemblyVersion("1.0.0.0")]
3636
[assembly: AssemblyFileVersion("1.0.0.0")]
37+
#if NET5_0_OR_GREATER
38+
[assembly: System.Runtime.Versioning.SupportedOSPlatform("windows7.0")]
39+
#endif

Samples/SVGBuilder/SVGBuilder.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
<PropertyGroup>
44
<OutputType>WinExe</OutputType>
5-
<TargetFrameworks>net6.0-windows;net462</TargetFrameworks>
5+
<TargetFrameworks>net8.0-windows;net6.0-windows;net462</TargetFrameworks>
66
<UseWindowsForms>true</UseWindowsForms>
77
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
88
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
9+
<Configurations>Debug;Release</Configurations>
910
</PropertyGroup>
1011

1112
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
12-
<NoWarn>$(NoWarn);CS0618;NETSDK1138</NoWarn>
13+
<NoWarn>$(NoWarn);NETSDK1138</NoWarn>
1314
</PropertyGroup>
1415
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
1516
<NoWarn>$(NoWarn);CS1591;CS0618;NETSDK1138</NoWarn>

Samples/SVGViewer/Properties/AssemblyInfo.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,6 @@
3434
// [assembly: AssemblyVersion("1.0.*")]
3535
[assembly: AssemblyVersion("1.0.0.0")]
3636
[assembly: AssemblyFileVersion("1.0.0.0")]
37+
#if NET5_0_OR_GREATER
38+
[assembly: System.Runtime.Versioning.SupportedOSPlatform("windows7.0")]
39+
#endif

Samples/SVGViewer/SVGViewer.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
<PropertyGroup>
44
<OutputType>WinExe</OutputType>
5-
<TargetFrameworks>net6.0-windows;net462</TargetFrameworks>
5+
<TargetFrameworks>net8.0-windows;net6.0-windows;net462</TargetFrameworks>
66
<UseWindowsForms>true</UseWindowsForms>
77
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
88
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
9+
<Configurations>Debug;Release</Configurations>
910
</PropertyGroup>
1011

1112
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
12-
<NoWarn>$(NoWarn);CS0618;NETSDK1138</NoWarn>
13+
<NoWarn>$(NoWarn);NETSDK1138</NoWarn>
1314
</PropertyGroup>
1415
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
1516
<NoWarn>$(NoWarn);CS1591;CS0618;NETSDK1138</NoWarn>

Samples/SvgConsole/SvgConsole.csproj

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,13 @@
88
<PackAsTool>True</PackAsTool>
99
<ToolCommandName>SvgConsole</ToolCommandName>
1010
<LangVersion>7.3</LangVersion>
11-
</PropertyGroup>
12-
13-
<PropertyGroup>
11+
<Configurations>Debug;Release</Configurations>
1412
<PublishTrimmed>False</PublishTrimmed>
1513
<PublishReadyToRun>False</PublishReadyToRun>
1614
</PropertyGroup>
1715

1816
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
19-
<NoWarn>$(NoWarn);CS0618;NETSDK1138</NoWarn>
17+
<NoWarn>$(NoWarn);NETSDK1138</NoWarn>
2018
</PropertyGroup>
2119
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
2220
<NoWarn>$(NoWarn);CS1591;CS0618;NETSDK1138</NoWarn>

Samples/SvgRuntimeUpdates/SvgRuntimeUpdates.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
55
<TargetFrameworks>netcoreapp3.1;net462</TargetFrameworks>
6+
<Configurations>Debug;Release</Configurations>
67
</PropertyGroup>
78

89
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
9-
<NoWarn>$(NoWarn);CS0618;NETSDK1138</NoWarn>
10+
<NoWarn>$(NoWarn);NETSDK1138</NoWarn>
1011
</PropertyGroup>
1112
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
1213
<NoWarn>$(NoWarn);CS1591;CS0618;NETSDK1138</NoWarn>

Source/DataTypes/SvgNumberCollection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public static SvgNumberCollection Parse(ReadOnlySpan<char> numbers)
6464
foreach (var part in parts)
6565
{
6666
var partValue = part.Value;
67-
var result = StringParser.ToFloatAny(ref partValue);
67+
var result = StringParser.ToFloatAny(partValue);
6868
collection.Add(result);
6969
}
7070

0 commit comments

Comments
 (0)