Skip to content

Commit 760886b

Browse files
Drop netstandard support (#3422)
- Drop support for `netstandard2.0`. - Bump version to `9.0.0`. - Update all NuGet packages to their latest versions where possible. - Remove redundant NuGet package references. - Simplify code. - Remove public members annotated with `[Obsolete]`. - Remove deprecated `--serializeasv2` option. Resolves #3396.
1 parent fca506a commit 760886b

File tree

109 files changed

+291
-1130
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+291
-1130
lines changed

.github/workflows/codeql-analysis.yml

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,37 @@
1-
name: codeql-analysis
2-
3-
on:
4-
push:
5-
branches: [ master ]
6-
pull_request:
7-
branches: [ master ]
8-
schedule:
9-
- cron: '0 8 * * MON'
10-
workflow_dispatch:
11-
12-
permissions:
13-
actions: read
14-
contents: read
15-
16-
jobs:
17-
code-ql:
18-
19-
runs-on: ubuntu-latest
20-
21-
permissions:
22-
security-events: write
23-
24-
steps:
25-
- name: Checkout repository
26-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
27-
28-
- name: Initialize CodeQL
1+
name: codeql-analysis
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
schedule:
9+
- cron: '0 8 * * MON'
10+
workflow_dispatch:
11+
12+
permissions:
13+
actions: read
14+
contents: read
15+
16+
jobs:
17+
code-ql:
18+
19+
runs-on: ubuntu-latest
20+
21+
permissions:
22+
security-events: write
23+
24+
steps:
25+
- name: Checkout repository
26+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
27+
28+
- name: Initialize CodeQL
2929
uses: github/codeql-action/init@fca7ace96b7d713c7035871441bd52efbe39e27e # v3.28.19
30-
with:
31-
languages: csharp
32-
build-mode: none
33-
34-
- name: Perform CodeQL Analysis
30+
with:
31+
languages: csharp
32+
build-mode: none
33+
34+
- name: Perform CodeQL Analysis
3535
uses: github/codeql-action/analyze@fca7ace96b7d713c7035871441bd52efbe39e27e # v3.28.19
36-
with:
37-
category: '/language:csharp'
36+
with:
37+
category: '/language:csharp'

.github/workflows/ossf-scorecard.yml

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,44 @@
1-
name: ossf-scorecard
2-
3-
on:
4-
push:
5-
branches: [ master ]
6-
schedule:
7-
- cron: '0 8 * * MON'
8-
workflow_dispatch:
9-
10-
permissions: read-all
11-
12-
jobs:
13-
analysis:
14-
name: analysis
15-
runs-on: ubuntu-latest
16-
17-
permissions:
18-
id-token: write
19-
security-events: write
20-
21-
steps:
22-
- name: Checkout code
23-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
24-
with:
25-
persist-credentials: false
26-
27-
- name: Run analysis
1+
name: ossf-scorecard
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
schedule:
7+
- cron: '0 8 * * MON'
8+
workflow_dispatch:
9+
10+
permissions: read-all
11+
12+
jobs:
13+
analysis:
14+
name: analysis
15+
runs-on: ubuntu-latest
16+
17+
permissions:
18+
id-token: write
19+
security-events: write
20+
21+
steps:
22+
- name: Checkout code
23+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
24+
with:
25+
persist-credentials: false
26+
27+
- name: Run analysis
2828
uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
29-
with:
30-
publish_results: true
31-
results_file: results.sarif
32-
results_format: sarif
33-
34-
- name: Upload artifact
35-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
36-
with:
37-
name: SARIF
38-
path: results.sarif
39-
retention-days: 5
40-
41-
- name: Upload to code-scanning
29+
with:
30+
publish_results: true
31+
results_file: results.sarif
32+
results_format: sarif
33+
34+
- name: Upload artifact
35+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
36+
with:
37+
name: SARIF
38+
path: results.sarif
39+
retention-days: 5
40+
41+
- name: Upload to code-scanning
4242
uses: github/codeql-action/upload-sarif@fca7ace96b7d713c7035871441bd52efbe39e27e # v3.28.19
43-
with:
44-
sarif_file: results.sarif
43+
with:
44+
sarif_file: results.sarif

Directory.Build.props

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<Company>https://github.com/domaindrivendev/Swashbuckle.AspNetCore</Company>
99
<ContinuousIntegrationBuild Condition=" '$(CI)' != '' ">true</ContinuousIntegrationBuild>
1010
<Copyright>Copyright (c) 2016-$([System.DateTime]::Now.ToString(yyyy)) Richard Morris</Copyright>
11+
<DefaultTargetFrameworks>net9.0;net8.0</DefaultTargetFrameworks>
1112
<Deterministic>true</Deterministic>
1213
<EmbedUntrackedSources>true</EmbedUntrackedSources>
1314
<EnablePackageValidation>$(IsPackable)</EnablePackageValidation>
@@ -40,7 +41,7 @@
4041
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
4142
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
4243
<UseArtifactsOutput>true</UseArtifactsOutput>
43-
<VersionPrefix>8.1.5</VersionPrefix>
44+
<VersionPrefix>9.0.0</VersionPrefix>
4445
<WarnOnPackingNonPackableProject>false</WarnOnPackingNonPackableProject>
4546
</PropertyGroup>
4647
<PropertyGroup Condition=" '$(GITHUB_ACTIONS)' != '' AND '$(DEPENDABOT_JOB_ID)' == '' ">

Directory.Packages.props

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,32 @@
11
<Project>
22
<ItemGroup>
33
<PackageVersion Include="Autofac.Extensions.DependencyInjection" Version="10.0.0" />
4-
<PackageVersion Include="BenchmarkDotNet" Version="0.15.0" />
4+
<PackageVersion Include="BenchmarkDotNet" Version="0.15.1" />
55
<PackageVersion Include="coverlet.msbuild" Version="6.0.4" />
66
<PackageVersion Include="GitHubActionsTestLogger" Version="2.4.1" />
77
<PackageVersion Include="IdentityServer4" Version="3.1.4" />
88
<PackageVersion Include="IdentityServer4.AccessTokenValidation" Version="3.0.1" />
99
<PackageVersion Include="JunitXml.TestLogger" Version="6.1.0" />
1010
<PackageVersion Include="MartinCostello.Logging.XUnit.v3" Version="0.6.0" />
11-
<PackageVersion Include="Microsoft.AspNetCore" Version="2.3.0" />
12-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.ApiExplorer" Version="2.3.0" />
13-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="2.3.0" />
14-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Version="2.3.0" />
15-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.16" />
16-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="6.0.32" />
11+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.17" />
12+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.17" />
1713
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Versioning" Version="5.1.0" />
1814
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="5.1.0" />
19-
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="8.0.16" />
20-
<PackageVersion Include="Microsoft.AspNetCore.Razor.Design" Version="2.3.0" />
21-
<PackageVersion Include="Microsoft.AspNetCore.Routing" Version="2.3.0" />
22-
<PackageVersion Include="Microsoft.AspNetCore.StaticFiles" Version="2.3.0" />
23-
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="6.0.32" />
15+
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="8.0.17" />
16+
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="8.0.17" />
2417
<PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="4.14.0" />
2518
<PackageVersion Include="Microsoft.Extensions.FileProviders.Embedded" Version="2.1.1" />
2619
<PackageVersion Include="Microsoft.OpenApi" Version="1.6.23" />
2720
<PackageVersion Include="Microsoft.OpenApi.Readers" Version="1.6.23" />
28-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.0" />
21+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
2922
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
3023
<PackageVersion Include="NSubstitute" Version="5.3.0" />
3124
<PackageVersion Include="NSwag.MSBuild" Version="14.4.0" />
3225
<PackageVersion Include="ReportGenerator" Version="5.4.7" />
33-
<PackageVersion Include="System.Text.Json" Version="4.6.0" />
34-
<PackageVersion Include="Verify.XunitV3" Version="30.3.0" />
26+
<PackageVersion Include="Verify.XunitV3" Version="30.4.0" />
3527
<PackageVersion Include="xunit" Version="2.9.3" />
36-
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.0" />
37-
<PackageVersion Include="xunit.v3" Version="2.0.2" />
38-
<PackageVersion Include="xunit.v3.extensibility.core" Version="2.0.2" />
28+
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.1" />
29+
<PackageVersion Include="xunit.v3" Version="2.0.3" />
30+
<PackageVersion Include="xunit.v3.extensibility.core" Version="2.0.3" />
3931
</ItemGroup>
4032
</Project>

src/Swashbuckle.AspNetCore.Annotations/AnnotationsOperationFilter.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@ public void Apply(OpenApiOperation operation, OperationFilterContext context)
1717
actionAttributes = methodInfo.GetCustomAttributes(true);
1818
}
1919

20-
#if NET
2120
if (context.ApiDescription?.ActionDescriptor?.EndpointMetadata is { } metadata)
2221
{
2322
metadataAttributes = metadata;
2423
}
25-
#endif
2624

2725
// NOTE: When controller and action attributes are applicable, action attributes should take priority.
2826
// Hence, why they're at the end of the list (i.e. last one wins).

src/Swashbuckle.AspNetCore.Annotations/AnnotationsSwaggerGenOptionsExtensions.cs

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,6 @@ private static IEnumerable<Type> AnnotationsSubTypesSelector(Type type)
6262
return subTypeAttributes.Select(attr => attr.SubType);
6363
}
6464

65-
#pragma warning disable CS0618 // Type or member is obsolete
66-
var obsoleteAttribute = type.GetCustomAttributes(false)
67-
.OfType<SwaggerSubTypesAttribute>()
68-
.FirstOrDefault();
69-
#pragma warning restore CS0618 // Type or member is obsolete
70-
71-
if (obsoleteAttribute != null)
72-
{
73-
return obsoleteAttribute.SubTypes;
74-
}
75-
76-
#if NET
7765
var jsonDerivedTypeAttributes = type.GetCustomAttributes(false)
7866
.OfType<JsonDerivedTypeAttribute>()
7967
.ToList();
@@ -82,7 +70,6 @@ private static IEnumerable<Type> AnnotationsSubTypesSelector(Type type)
8270
{
8371
return jsonDerivedTypeAttributes.Select(attr => attr.DerivedType);
8472
}
85-
#endif
8673

8774
return [];
8875
}
@@ -98,18 +85,6 @@ private static string AnnotationsDiscriminatorNameSelector(Type baseType)
9885
return discriminatorAttribute.PropertyName;
9986
}
10087

101-
#pragma warning disable CS0618 // Type or member is obsolete
102-
var obsoleteAttribute = baseType.GetCustomAttributes(false)
103-
.OfType<SwaggerSubTypesAttribute>()
104-
.FirstOrDefault();
105-
#pragma warning restore CS0618 // Type or member is obsolete
106-
107-
if (obsoleteAttribute != null)
108-
{
109-
return obsoleteAttribute.Discriminator;
110-
}
111-
112-
#if NET
11388
var jsonPolymorphicAttributes = baseType.GetCustomAttributes(false)
11489
.OfType<JsonPolymorphicAttribute>()
11590
.FirstOrDefault();
@@ -118,7 +93,6 @@ private static string AnnotationsDiscriminatorNameSelector(Type baseType)
11893
{
11994
return jsonPolymorphicAttributes.TypeDiscriminatorPropertyName;
12095
}
121-
#endif
12296

12397
return null;
12498
}
@@ -137,7 +111,6 @@ private static string AnnotationsDiscriminatorValueSelector(Type subType)
137111
return subTypeAttribute.DiscriminatorValue;
138112
}
139113

140-
#if NET
141114
var jsonDerivedTypeAttributes = baseType.GetCustomAttributes(false)
142115
.OfType<JsonDerivedTypeAttribute>()
143116
.FirstOrDefault(attr => attr.DerivedType == subType);
@@ -146,7 +119,6 @@ private static string AnnotationsDiscriminatorValueSelector(Type subType)
146119
{
147120
return discriminator;
148121
}
149-
#endif
150122

151123
baseType = baseType.BaseType;
152124
}

src/Swashbuckle.AspNetCore.Annotations/PublicAPI/PublicAPI.Shipped.txt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,6 @@ Swashbuckle.AspNetCore.Annotations.SwaggerSubTypeAttribute.DiscriminatorValue.se
7878
Swashbuckle.AspNetCore.Annotations.SwaggerSubTypeAttribute.SubType.get -> System.Type
7979
Swashbuckle.AspNetCore.Annotations.SwaggerSubTypeAttribute.SubType.set -> void
8080
Swashbuckle.AspNetCore.Annotations.SwaggerSubTypeAttribute.SwaggerSubTypeAttribute(System.Type subType) -> void
81-
Swashbuckle.AspNetCore.Annotations.SwaggerSubTypesAttribute
82-
Swashbuckle.AspNetCore.Annotations.SwaggerSubTypesAttribute.Discriminator.get -> string
83-
Swashbuckle.AspNetCore.Annotations.SwaggerSubTypesAttribute.Discriminator.set -> void
84-
Swashbuckle.AspNetCore.Annotations.SwaggerSubTypesAttribute.SubTypes.get -> System.Collections.Generic.IEnumerable<System.Type>
85-
Swashbuckle.AspNetCore.Annotations.SwaggerSubTypesAttribute.SwaggerSubTypesAttribute(params System.Type[] subTypes) -> void
8681
Swashbuckle.AspNetCore.Annotations.SwaggerTagAttribute
8782
Swashbuckle.AspNetCore.Annotations.SwaggerTagAttribute.Description.get -> string
8883
Swashbuckle.AspNetCore.Annotations.SwaggerTagAttribute.ExternalDocsUrl.get -> string

src/Swashbuckle.AspNetCore.Annotations/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/Swashbuckle.AspNetCore.Annotations/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt

Whitespace-only changes.

src/Swashbuckle.AspNetCore.Annotations/SwaggerSubTypesAttribute.cs

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)