Skip to content

Commit 40d1063

Browse files
committed
Add .net 10 support
1 parent a98b5b5 commit 40d1063

File tree

9 files changed

+5319
-39
lines changed

9 files changed

+5319
-39
lines changed

NGitLab.Mock.Tests/NGitLab.Mock.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0;net472</TargetFrameworks>
3+
<TargetFrameworks>net10.0;net472</TargetFrameworks>
44
<IsPackable>false</IsPackable>
55
</PropertyGroup>
66
<ItemGroup>

NGitLab.Tests/MembersClientTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,14 +184,14 @@ public async Task AsyncMethodsBehaveAsExpected()
184184
// Does NOT search inherited permission by default...
185185
AssertThrowsGitLabException(() => client.Members.GetMemberOfProjectAsync(projectId, user1.Id), System.Net.HttpStatusCode.NotFound);
186186
AssertThrowsGitLabException(() => client.Members.GetMemberOfGroupAsync(groupId, user1.Id), System.Net.HttpStatusCode.NotFound);
187-
Assert.That(client.Members.OfProjectAsync(projectId).Select(m => m.UserName), Is.Empty);
188-
Assert.That(client.Members.OfGroupAsync(groupId).Select(m => m.UserName), Is.EquivalentTo(new[] { ownerName }));
187+
Assert.That(client.Members.OfProjectAsync(projectId).ToList().Select(m => m.UserName), Is.Empty);
188+
Assert.That(client.Members.OfGroupAsync(groupId).ToList().Select(m => m.UserName), Is.EquivalentTo(new[] { ownerName }));
189189

190190
// Does search inherited permission when asked...
191191
await client.Members.GetMemberOfProjectAsync(projectId, user1.Id, includeInheritedMembers: true);
192192
await client.Members.GetMemberOfGroupAsync(groupId, user1.Id, includeInheritedMembers: true);
193-
Assert.That(client.Members.OfProjectAsync(projectId, includeInheritedMembers: true).Select(m => m.UserName), Is.EquivalentTo(new[] { ownerName, user1Name }));
194-
Assert.That(client.Members.OfGroupAsync(groupId, includeInheritedMembers: true).Select(m => m.UserName), Is.EquivalentTo(new[] { ownerName, user1Name }));
193+
Assert.That(client.Members.OfProjectAsync(projectId, includeInheritedMembers: true).ToList().Select(m => m.UserName), Is.EquivalentTo(new[] { ownerName, user1Name }));
194+
Assert.That(client.Members.OfGroupAsync(groupId, includeInheritedMembers: true).ToList().Select(m => m.UserName), Is.EquivalentTo(new[] { ownerName, user1Name }));
195195

196196
// Cannot update non-existent membership...
197197
AssertThrowsGitLabException(() => client.Members.UpdateMemberOfProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = AccessLevel.Owner }), System.Net.HttpStatusCode.NotFound);

NGitLab.Tests/NGitLab.Tests.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net8.0</TargetFramework>
3+
<TargetFramework>net10.0</TargetFramework>
44
<IsPackable>false</IsPackable>
55
</PropertyGroup>
66
<ItemGroup>
@@ -22,7 +22,6 @@
2222
<PackageReference Include="NUnit3TestAdapter" Version="5.2.0" />
2323
<PackageReference Include="NSubstitute" Version="5.3.0" />
2424
<PackageReference Include="Polly" Version="8.6.5" />
25-
<PackageReference Include="System.Text.Json" Version="8.0.5" />
2625
<PackageReference Include="coverlet.collector" Version="6.0.4">
2726
<PrivateAssets>all</PrivateAssets>
2827
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#if NETFRAMEWORK || NETSTANDARD2_0
2+
#nullable enable
3+
#pragma warning disable
4+
5+
using System.Diagnostics;
6+
using System.Diagnostics.CodeAnalysis;
7+
8+
namespace System.Runtime.CompilerServices
9+
{
10+
11+
12+
/// <summary>
13+
/// Indicates that compiler support for a particular feature is required for the location where this attribute is applied.
14+
/// </summary>
15+
[AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = false)]
16+
public sealed class CompilerFeatureRequiredAttribute : Attribute
17+
{
18+
public CompilerFeatureRequiredAttribute(string featureName)
19+
{
20+
FeatureName = featureName;
21+
}
22+
23+
/// <summary>
24+
/// The name of the compiler feature.
25+
/// </summary>
26+
public string FeatureName { get; }
27+
28+
/// <summary>
29+
/// If true, the compiler can choose to allow access to the location where this attribute is applied if it does not understand <see cref="FeatureName"/>.
30+
/// </summary>
31+
public bool IsOptional { get; init; }
32+
33+
/// <summary>
34+
/// The <see cref="FeatureName"/> used for the ref structs C# feature.
35+
/// </summary>
36+
public const string RefStructs = nameof(RefStructs);
37+
38+
/// <summary>
39+
/// The <see cref="FeatureName"/> used for the required members C# feature.
40+
/// </summary>
41+
public const string RequiredMembers = nameof(RequiredMembers);
42+
}
43+
}
44+
45+
#pragma warning restore
46+
#nullable restore
47+
#endif //NETFRAMEWORK
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#if NETFRAMEWORK || NETSTANDARD2_0
2+
#nullable enable
3+
#pragma warning disable
4+
5+
namespace System.Runtime.CompilerServices
6+
{
7+
using global::System.Diagnostics;
8+
using global::System.Diagnostics.CodeAnalysis;
9+
10+
/// <summary>
11+
/// Reserved to be used by the compiler for tracking metadata.
12+
/// This class should not be used by developers in source code.
13+
/// </summary>
14+
/// <remarks>
15+
/// This definition is provided by the <i>IsExternalInit</i> NuGet package (https://www.nuget.org/packages/IsExternalInit).
16+
/// Please see https://github.com/manuelroemer/IsExternalInit for more information.
17+
/// </remarks>
18+
#if !ISEXTERNALINIT_INCLUDE_IN_CODE_COVERAGE
19+
[ExcludeFromCodeCoverage, DebuggerNonUserCode]
20+
#endif
21+
internal static class IsExternalInit
22+
{
23+
}
24+
}
25+
26+
#pragma warning restore
27+
#nullable restore
28+
#endif //NETFRAMEWORK
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#if NETFRAMEWORK || NETSTANDARD2_0
2+
#nullable enable
3+
#pragma warning disable
4+
5+
using System.Diagnostics;
6+
using System.Diagnostics.CodeAnalysis;
7+
8+
namespace System.Runtime.CompilerServices
9+
{
10+
11+
[DebuggerNonUserCode]
12+
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = false)]
13+
internal sealed class RequiredMemberAttribute : Attribute { }
14+
}
15+
16+
#pragma warning restore
17+
#nullable restore
18+
#endif //NETFRAMEWORK

NGitLab/NGitLab.csproj

Lines changed: 6 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,28 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net472;netstandard2.0;net8.0</TargetFrameworks>
4-
<!-- Keep "WebRequest is obsolete" as a warning -->
5-
<WarningsNotAsErrors>$(WarningsNotAsErrors);SYSLIB0014</WarningsNotAsErrors>
6-
<TargetFrameworks>net472;net8.0;net10.0</TargetFrameworks>
3+
<TargetFrameworks>net472;netstandard2.0;net8.0;net10.0</TargetFrameworks>
74
<PublishAot Condition="$(TargetFramework) == 'net10.0'">true</PublishAot>
85
<PublishAot Condition="$(TargetFramework) == 'net8.0'">true</PublishAot>
6+
<!-- Keep "WebRequest is obsolete" as a warning -->
7+
<WarningsNotAsErrors>$(WarningsNotAsErrors);SYSLIB0014</WarningsNotAsErrors>
98
</PropertyGroup>
109

11-
12-
13-
1410
<ItemGroup>
15-
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.*" />
1611
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="3.3.4">
1712
<PrivateAssets>all</PrivateAssets>
1813
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1914
</PackageReference>
2015
</ItemGroup>
2116

22-
<ItemGroup Condition="'$(TargetFramework)' != 'net8.0'">
23-
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0" />
24-
<PackageReference Include="PolySharp" Version="1.15.0">
25-
<PrivateAssets>all</PrivateAssets>
26-
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
27-
</PackageReference>
28-
29-
30-
</ItemGroup>
31-
32-
33-
34-
<ItemGroup Condition="$(TargetFramework) == 'net472'">
17+
<ItemGroup Condition="$(TargetFramework) == 'net472' Or $(TargetFramework) == 'netstandard2.0' ">
3518
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
19+
<PackageReference Include="IndexRange" Version="1.1.0" />
3620
<PackageReference Include="System.Text.Json" Version="10.0.0" />
3721
<PackageReference Include="System.Net.Http" Version="4.3.4" />
3822
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3">
3923
<PrivateAssets>all</PrivateAssets>
4024
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
4125
</PackageReference>
42-
<Reference Include="System.Net.Http" Condition="'$(TargetFramework)' == 'net472'" />
43-
</ItemGroup>
44-
45-
46-
<ItemGroup Condition="$(TargetFramework) == 'net8.0'">
47-
48-
</ItemGroup>
49-
50-
51-
<ItemGroup Condition="$(TargetFramework) == 'net10.0'">
5226
</ItemGroup>
5327

5428
<ItemGroup>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+


0 commit comments

Comments
 (0)