Skip to content

Commit 2e3b315

Browse files
authored
feat: add support for .NET 10 (#1370)
This PR adds support for .NET 10 to the System.IO.Abstractions library by updating target frameworks, SDK versions, and package dependencies across the entire project. ### Key Changes - Updated .NET SDK version from 9.0.306 to 10.0.100 - Added net10.0 as a target framework alongside existing frameworks (net472, netstandard2.0/2.1, net6.0, net8.0, net9.0) - Added baseline snapshots and API test expectations for .NET 10.0 compatibility verification
1 parent 248036f commit 2e3b315

18 files changed

+1586
-9
lines changed

.github/workflows/build.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ jobs:
2424
7.0.x
2525
8.0.x
2626
9.0.x
27+
10.0.x
2728
- name: Run unit tests (windows)
2829
if: matrix.os == 'windows-latest'
2930
run: ./build.ps1 CodeCoverage
@@ -56,6 +57,7 @@ jobs:
5657
7.0.x
5758
8.0.x
5859
9.0.x
60+
10.0.x
5961
- name: API checks
6062
run: ./build.sh ApiChecks
6163
- name: Upload artifacts
@@ -86,6 +88,7 @@ jobs:
8688
7.0.x
8789
8.0.x
8890
9.0.x
91+
10.0.x
8992
- name: Run sonarcloud analysis
9093
run: ./build.sh CodeAnalysis
9194

@@ -126,6 +129,7 @@ jobs:
126129
7.0.x
127130
8.0.x
128131
9.0.x
132+
10.0.x
129133
- name: Pack nuget packages
130134
run: ./build.sh Pack
131135
- name: Upload packages

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ jobs:
2424
7.0.x
2525
8.0.x
2626
9.0.x
27+
10.0.x
2728
- name: Run unit tests (windows)
2829
if: matrix.os == 'windows-latest'
2930
run: ./build.ps1 CodeCoverage
@@ -56,6 +57,7 @@ jobs:
5657
7.0.x
5758
8.0.x
5859
9.0.x
60+
10.0.x
5961
- name: API checks
6062
run: ./build.sh ApiChecks
6163
- name: Upload artifacts
@@ -87,6 +89,7 @@ jobs:
8789
7.0.x
8890
8.0.x
8991
9.0.x
92+
10.0.x
9093
- name: Run sonarcloud analysis
9194
run: ./build.sh CodeAnalysis
9295

Directory.Build.props

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1414
<PackageReadmeFile>README.md</PackageReadmeFile>
1515
<DefineConstants Condition="'$(TargetFramework)' != 'net472'">$(DefineConstants);FEATURE_FILE_SYSTEM_ACL_EXTENSIONS</DefineConstants>
16-
<DefineConstants Condition="'$(TargetFramework)' == 'net9.0' OR '$(TargetFramework)' == 'net8.0' OR '$(TargetFramework)' == 'net6.0' OR '$(TargetFramework)' == 'netstandard2.1'">$(DefineConstants);FEATURE_ASYNC_FILE;FEATURE_ENUMERATION_OPTIONS;FEATURE_ADVANCED_PATH_OPERATIONS;FEATURE_PATH_JOIN_WITH_SPAN;FEATURE_SPAN</DefineConstants>
17-
<DefineConstants Condition="'$(TargetFramework)' == 'net9.0' OR '$(TargetFramework)' == 'net8.0' OR '$(TargetFramework)' == 'net6.0'">$(DefineConstants);FEATURE_FILE_MOVE_WITH_OVERWRITE;FEATURE_SUPPORTED_OS_ATTRIBUTE;FEATURE_FILE_SYSTEM_WATCHER_FILTERS;FEATURE_ENDS_IN_DIRECTORY_SEPARATOR;FEATURE_PATH_JOIN_WITH_PARAMS;FEATURE_PATH_JOIN_WITH_FOUR_PATHS;FEATURE_FILE_SYSTEM_INFO_LINK_TARGET;FEATURE_CREATE_SYMBOLIC_LINK;FEATURE_FILESTREAM_OPTIONS</DefineConstants>
18-
<DefineConstants Condition="'$(TargetFramework)' == 'net9.0' OR '$(TargetFramework)' == 'net8.0'">$(DefineConstants);FEATURE_PATH_EXISTS;FEATURE_FILE_SYSTEM_WATCHER_WAIT_WITH_TIMESPAN;FEATURE_FILE_ATTRIBUTES_VIA_HANDLE;FEATURE_CREATE_TEMP_SUBDIRECTORY;FEATURE_READ_LINES_ASYNC;FEATURE_UNIX_FILE_MODE</DefineConstants>
19-
<DefineConstants Condition="'$(TargetFramework)' == 'net9.0'">$(DefineConstants);FEATURE_PATH_SPAN;FEATURE_FILE_SPAN</DefineConstants>
16+
<DefineConstants Condition="'$(TargetFramework)' == 'net10.0' OR '$(TargetFramework)' == 'net9.0' OR '$(TargetFramework)' == 'net8.0' OR '$(TargetFramework)' == 'net6.0' OR '$(TargetFramework)' == 'netstandard2.1'">$(DefineConstants);FEATURE_ASYNC_FILE;FEATURE_ENUMERATION_OPTIONS;FEATURE_ADVANCED_PATH_OPERATIONS;FEATURE_PATH_JOIN_WITH_SPAN;FEATURE_SPAN</DefineConstants>
17+
<DefineConstants Condition="'$(TargetFramework)' == 'net10.0' OR '$(TargetFramework)' == 'net9.0' OR '$(TargetFramework)' == 'net8.0' OR '$(TargetFramework)' == 'net6.0'">$(DefineConstants);FEATURE_FILE_MOVE_WITH_OVERWRITE;FEATURE_SUPPORTED_OS_ATTRIBUTE;FEATURE_FILE_SYSTEM_WATCHER_FILTERS;FEATURE_ENDS_IN_DIRECTORY_SEPARATOR;FEATURE_PATH_JOIN_WITH_PARAMS;FEATURE_PATH_JOIN_WITH_FOUR_PATHS;FEATURE_FILE_SYSTEM_INFO_LINK_TARGET;FEATURE_CREATE_SYMBOLIC_LINK;FEATURE_FILESTREAM_OPTIONS</DefineConstants>
18+
<DefineConstants Condition="'$(TargetFramework)' == 'net10.0' OR '$(TargetFramework)' == 'net9.0' OR '$(TargetFramework)' == 'net8.0'">$(DefineConstants);FEATURE_PATH_EXISTS;FEATURE_FILE_SYSTEM_WATCHER_WAIT_WITH_TIMESPAN;FEATURE_FILE_ATTRIBUTES_VIA_HANDLE;FEATURE_CREATE_TEMP_SUBDIRECTORY;FEATURE_READ_LINES_ASYNC;FEATURE_UNIX_FILE_MODE</DefineConstants>
19+
<DefineConstants Condition="'$(TargetFramework)' == 'net10.0' OR '$(TargetFramework)' == 'net9.0'">$(DefineConstants);FEATURE_PATH_SPAN;FEATURE_FILE_SPAN</DefineConstants>
2020
<DefineConstants>$(DefineConstants);FEATURE_SERIALIZABLE</DefineConstants>
2121
</PropertyGroup>
2222
<PropertyGroup>

Directory.Packages.props

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,17 @@
22
<PropertyGroup>
33
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
44
</PropertyGroup>
5+
<ItemGroup Condition=" '$(TargetFramework)' == 'net6.0' ">
6+
<PackageVersion Include="System.Text.Json" Version="6.0.11"/>
7+
</ItemGroup>
8+
<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
9+
<PackageVersion Include="System.Text.Json" Version="8.0.6"/>
10+
</ItemGroup>
11+
<ItemGroup Condition=" '$(TargetFramework)' != 'net8.0' And '$(TargetFramework)' != 'net6.0' ">
12+
<PackageVersion Include="System.Text.Json" Version="10.0.0"/>
13+
</ItemGroup>
514
<ItemGroup>
615
<PackageVersion Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
7-
<PackageVersion Include="System.Text.Json" Version="10.0.0"/>
816
<PackageVersion Include="IsExternalInit" Version="1.0.3" />
917
<PackageVersion Include="Nullable" Version="1.3.1" />
1018
<PackageVersion Include="Testably.Abstractions.FileSystem.Interface" Version="10.0.0" />

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
3-
"version": "9.0.307",
3+
"version": "10.0.100",
44
"rollForward": "latestMinor"
55
}
66
}

src/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Condition="Exists('$(MSBuildThisFileDirectory)/../Directory.Build.props')"/>
55

66
<PropertyGroup>
7-
<TargetFrameworks>net472;netstandard2.0;netstandard2.1;net6.0;net8.0;net9.0</TargetFrameworks>
7+
<TargetFrameworks>net472;netstandard2.0;netstandard2.1;net6.0;net8.0;net9.0;net10.0</TargetFrameworks>
88
</PropertyGroup>
99

1010
<PropertyGroup>

tests/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Condition="Exists('$(MSBuildThisFileDirectory)/../Directory.Build.props')"/>
55

66
<PropertyGroup>
7-
<TargetFrameworks>net9.0;net8.0;net6.0</TargetFrameworks>
7+
<TargetFrameworks>net10.0;net9.0;net8.0;net6.0</TargetFrameworks>
88
<TargetFrameworks Condition="!$([MSBuild]::IsOsUnixLike())">$(TargetFrameworks);net472</TargetFrameworks>
99
<NoWarn>$(NoWarn);S2699</NoWarn>
1010
<IsPackable>false</IsPackable>

0 commit comments

Comments
 (0)