Skip to content

Commit 876960b

Browse files
authored
Merge pull request #1156 from adamralph/net10-sdk
switch to .NET 10 SDK for build and test
2 parents 8944ecf + da240d7 commit 876960b

File tree

15 files changed

+83
-61
lines changed

15 files changed

+83
-61
lines changed

.editorconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,7 @@ indent_style = tab
3434

3535
[build]
3636
end_of_line = lf
37+
38+
[packages.lock.json]
39+
end_of_line = unset
40+
insert_final_newline = unset

.github/workflows/ci.yml

Lines changed: 34 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -20,31 +20,25 @@ jobs:
2020
- job:
2121
os: macos-14
2222
tests:
23-
framework: net8.0
24-
sdk: "8.0.416"
25-
sdk-major-minor: "8.0"
23+
framework: net10.0
24+
sdk: "10.0.101"
25+
sdk-major-minor: "10.0"
2626
### current, latest LTS and latest
2727
- job:
2828
os: macos-15
2929
tests:
30-
framework: net8.0
31-
sdk: "8.0.416"
32-
sdk-major-minor: "8.0"
33-
- job:
34-
os: macos-15
35-
tests:
36-
framework: net9.0
37-
sdk: "9.0.308"
38-
sdk-major-minor: "9.0"
30+
framework: net10.0
31+
sdk: "10.0.101"
32+
sdk-major-minor: "10.0"
3933
# Linux
4034
## x64
4135
### old latest LTS
4236
- job:
4337
os: ubuntu-22.04
4438
tests:
45-
framework: net8.0
46-
sdk: "8.0.416"
47-
sdk-major-minor: "8.0"
39+
framework: net10.0
40+
sdk: "10.0.101"
41+
sdk-major-minor: "10.0"
4842
### current, all
4943
- job:
5044
os: ubuntu-24.04
@@ -58,14 +52,20 @@ jobs:
5852
framework: net9.0
5953
sdk: "9.0.308"
6054
sdk-major-minor: "9.0"
55+
- job:
56+
os: ubuntu-24.04
57+
tests:
58+
framework: net10.0
59+
sdk: "10.0.101"
60+
sdk-major-minor: "10.0"
6161
## arm64
6262
### old, latest LTS
6363
- job:
6464
os: ubuntu-22.04-arm
6565
tests:
66-
framework: net8.0
67-
sdk: "8.0.416"
68-
sdk-major-minor: "8.0"
66+
framework: net10.0
67+
sdk: "10.0.101"
68+
sdk-major-minor: "10.0"
6969
### current, all
7070
- job:
7171
os: ubuntu-24.04-arm
@@ -80,50 +80,44 @@ jobs:
8080
framework: net9.0
8181
sdk: "9.0.308"
8282
sdk-major-minor: "9.0"
83+
- job:
84+
os: ubuntu-24.04-arm
85+
tests:
86+
framework: net10.0
87+
sdk: "10.0.101"
88+
sdk-major-minor: "10.0"
8389
# Windows
8490
## x64
8591
### old, latest LTS
8692
- job:
8793
os: windows-2022
8894
tests:
89-
framework: net8.0
90-
sdk: "8.0.416"
91-
sdk-major-minor: "8.0"
95+
framework: net10.0
96+
sdk: "10.0.101"
97+
sdk-major-minor: "10.0"
9298
### current, latest LTS and latest
9399
- job:
94100
os: windows-2025
95101
tests:
96-
framework: net8.0
97-
sdk: "8.0.416"
98-
sdk-major-minor: "8.0"
99-
- job:
100-
os: windows-2025
101-
tests:
102-
framework: net9.0
103-
sdk: "9.0.308"
104-
sdk-major-minor: "9.0"
102+
framework: net10.0
103+
sdk: "10.0.101"
104+
sdk-major-minor: "10.0"
105105
## arm64
106106
### current, latest LTS and latest
107107
- job:
108108
os: windows-11-arm
109109
tests:
110-
framework: net8.0
111-
sdk: "8.0.416"
112-
sdk-major-minor: "8.0"
113-
- job:
114-
os: windows-11-arm
115-
tests:
116-
framework: net9.0
117-
sdk: "9.0.308"
118-
sdk-major-minor: "9.0"
110+
framework: net10.0
111+
sdk: "10.0.101"
112+
sdk-major-minor: "10.0"
119113
name: ${{ matrix.job.os }}-sdk-${{ matrix.tests.sdk-major-minor }}
120114
runs-on: ${{ matrix.job.os }}
121115
steps:
122116
- uses: actions/[email protected]
123117
with:
124118
dotnet-version: |
125119
${{ matrix.tests.sdk }}
126-
9.0.308
120+
10.0.101
127121
- run: dotnet --info
128122
- run: git --version
129123
- uses: actions/[email protected]

.github/workflows/infer-sharp.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
steps:
1212
- uses: actions/[email protected]
1313
with:
14-
dotnet-version: '9.0.308'
14+
dotnet-version: '10.0.101'
1515
- uses: actions/[email protected]
1616
- run: dotnet build
1717
- run: ls -al

.github/workflows/lint.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ jobs:
2121
DEFAULT_BRANCH: main
2222
FILTER_REGEX_EXCLUDE: \bcodeql-analysis\.yml$|\bLICENSE$|\bversions\.txt$
2323
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
24+
VALIDATE_DOTNET_SLN_FORMAT_ANALYZERS: false
25+
VALIDATE_DOTNET_SLN_FORMAT_STYLE: false
26+
VALIDATE_DOTNET_SLN_FORMAT_WHITESPACE: false
2427
VALIDATE_JSON_PRETTIER: false
2528
VALIDATE_MARKDOWN_PRETTIER: false
2629
VALIDATE_SHELL_SHFMT: false

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
steps:
1313
- uses: actions/[email protected]
1414
with:
15-
dotnet-version: 9.0.308
15+
dotnet-version: 10.0.101
1616
- uses: actions/[email protected]
1717
- env:
1818
MINVER_VERSION: ${{ vars.MINVER_VERSION }}

MinVerTests.Infra/MinVerCli.cs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,24 @@ namespace MinVerTests.Infra;
22

33
public static class MinVerCli
44
{
5-
public static Task<(string StandardOutput, string StandardError)> ReadAsync(string workingDirectory, string configuration = Configuration.Current, string args = "", Func<int, bool>? handleExitCode = null, params (string, string)[] envVars)
5+
public static async Task<(string StandardOutput, string StandardError)> ReadAsync(string workingDirectory, string configuration = Configuration.Current, string args = "", Func<int, bool>? handleExitCode = null, params (string, string)[] envVars)
66
{
77
var environmentVariables = envVars.ToDictionary(envVar => envVar.Item1, envVar => envVar.Item2, StringComparer.OrdinalIgnoreCase);
88
_ = environmentVariables.TryAdd("MinVerVerbosity".ToAltCase(), "trace");
99

10-
return CommandEx.ReadLoggedAsync("dotnet", $"exec {GetPath(configuration)} {args}", workingDirectory, environmentVariables, handleExitCode);
10+
var path = await GetPath(configuration).ConfigureAwait(false);
11+
return await CommandEx.ReadLoggedAsync("dotnet", $"exec {path} {args}", workingDirectory, environmentVariables, handleExitCode).ConfigureAwait(false);
1112
}
1213

13-
public static string GetPath(string configuration) =>
14-
#if NET8_0
15-
Solution.GetFullPath($"minver-cli/bin/{configuration}/net8.0/minver-cli.dll");
16-
#endif
17-
#if NET9_0
18-
Solution.GetFullPath($"minver-cli/bin/{configuration}/net9.0/minver-cli.dll");
19-
#endif
14+
public static async Task<string> GetPath(string configuration)
15+
{
16+
var targetFramework = await GetTargetFramework().ConfigureAwait(false);
17+
return Solution.GetFullPath($"minver-cli/bin/{configuration}/{targetFramework}/minver-cli.dll");
18+
}
19+
20+
private static async Task<string> GetTargetFramework()
21+
{
22+
var sdkVersionInUse = await Sdk.GetVersionInUse().ConfigureAwait(false);
23+
return sdkVersionInUse.Split('.', 2)[0] == "8" ? "net8.0" : "net9.0";
24+
}
2025
}

MinVerTests.Infra/MinVerTests.Infra.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<IsPackable>false</IsPackable>
5-
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
5+
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
66
</PropertyGroup>
77

88
<ItemGroup>

MinVerTests.Infra/Sdk.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ public static class Sdk
1818
return standardOutput.Trim();
1919
});
2020

21+
public static Task<string> GetVersionInUse() => VersionInUse.Value;
22+
2123
public static async Task CreateSolution(string path, string[] projectNames, string configuration = Configuration.Current)
2224
{
2325
projectNames = projectNames ?? throw new ArgumentNullException(nameof(projectNames));
@@ -191,7 +193,11 @@ private static async Task<Package> GetPackage(string fileName)
191193
{
192194
var extractedDirectoryName = Path.Combine(Path.GetDirectoryName(fileName) ?? "", Path.GetFileNameWithoutExtension(fileName));
193195

196+
#if NET10_0_OR_GREATER
197+
await ZipFile.ExtractToDirectoryAsync(fileName, extractedDirectoryName).ConfigureAwait(false);
198+
#else
194199
ZipFile.ExtractToDirectory(fileName, extractedDirectoryName);
200+
#endif
195201

196202
var nuspecFileName = Directory.EnumerateFiles(extractedDirectoryName, "*.nuspec").First();
197203

MinVerTests.Lib/LogMessages.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,14 @@ private static async Task<string> ReplaceShas(string logMessages, string path)
115115
{
116116
var shas = (await ReadAsync("git", "log --pretty=format:\"%H\"", path))
117117
.StandardOutput
118-
.ToNonEmptyLines()
119-
.Reverse()
120-
.ToList();
118+
.ToNonEmptyLines();
119+
#if NET10_0_OR_GREATER
120+
shas = [.. shas.Reverse(),];
121+
#else
122+
#pragma warning disable CA1806 // Do not ignore method results
123+
shas.Reverse();
124+
#pragma warning restore CA1806
125+
#endif
121126

122127
foreach (var item in shas.Select((sha, index) => new { Sha = sha, Index = index, }))
123128
{

MinVerTests.Lib/MinVerTests.Lib.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<!-- https://github.com/dotnet/roslyn-analyzers/issues/7192 -->
55
<NoWarn>$(NoWarn);CA1515</NoWarn>
66
<RollForward>major</RollForward>
7-
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
7+
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
88
</PropertyGroup>
99

1010
<ItemGroup>

0 commit comments

Comments
 (0)