Skip to content

Commit

Permalink
Add Net 9 target (#181)
Browse files Browse the repository at this point in the history
  • Loading branch information
trejjam authored Nov 18, 2024
1 parent 9e64d4d commit 7293a62
Show file tree
Hide file tree
Showing 8 changed files with 177 additions and 151 deletions.
5 changes: 3 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ jobs:
with:
dotnet-version: |
8.0.x
9.0.x
- uses: actions/checkout@v4
- name: Fetch all history for all tags and branches
run: git fetch --prune --unshallow
Expand All @@ -39,9 +40,9 @@ jobs:
DOTNET_CLI_TELEMETRY_OPTOUT: 'true'
steps:
- uses: actions/checkout@v4
- name: Setup .Net 8.0.x
- name: Setup .Net 9.0.x
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
dotnet-version: '9.0.x'
- name: .Net Format
run: dotnet format --no-restore --verify-no-changes -v diag
1 change: 1 addition & 0 deletions .github/workflows/nightly-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
with:
dotnet-version: |
8.0.x
9.0.x
- uses: actions/checkout@v4
- name: Fetch all history for all tags and branches
run: git fetch --prune --unshallow
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/pr-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
- synchronize
- reopened
merge_group:
types: [checks_requested]

jobs:
unit-test:
Expand All @@ -19,6 +20,7 @@ jobs:
with:
dotnet-version: |
8.0.x
9.0.x
- uses: actions/checkout@v4
- name: Fetch all history for all tags and branches
run: git fetch --prune --unshallow
Expand All @@ -33,9 +35,9 @@ jobs:
DOTNET_CLI_TELEMETRY_OPTOUT: 'true'
steps:
- uses: actions/checkout@v4
- name: Setup .Net 8.0.x
- name: Setup .Net 9.0.x
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
dotnet-version: '9.0.x'
- name: .Net Format
run: dotnet format --no-restore --verify-no-changes -v diag
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ jobs:
with:
dotnet-version: |
8.0.x
9.0.x
- uses: actions/checkout@v4
- name: Fetch all history for all tags and branches
run: git fetch --prune --unshallow
Expand Down
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>12.0</LangVersion>
<Nullable>enable</Nullable>
<VersionPrefix>1.0.0</VersionPrefix>
<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\PayPal.Sdk.Checkout\PayPal.Sdk.Checkout.csproj" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Meziantou.Analyzer" Version="2.0.179" PrivateAssets="all" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />
</ItemGroup>

<ItemGroup>
<Content Update="appsettings.json5" CopyToPublishDirectory="Always" CopyToOutputDirectory="Always" />
<Content Update="*.appsettings.json5" CopyToPublishDirectory="Always" CopyToOutputDirectory="Always" />
</ItemGroup>

</Project>
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<LangVersion>12.0</LangVersion>
<Nullable>enable</Nullable>
<VersionPrefix>1.0.0</VersionPrefix>
<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\PayPal.Sdk.Checkout\PayPal.Sdk.Checkout.csproj" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Meziantou.Analyzer" Version="2.0.179" PrivateAssets="all" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="9.0.0" />
</ItemGroup>

<ItemGroup>
<Content Update="appsettings.json5" CopyToPublishDirectory="Always" CopyToOutputDirectory="Always" />
<Content Update="*.appsettings.json5" CopyToPublishDirectory="Always" CopyToOutputDirectory="Always" />
</ItemGroup>

</Project>
8 changes: 4 additions & 4 deletions src/PayPal.Sdk.Checkout/Core/UserAgent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,14 @@ GitInfo.TagMajor is { } major
}

header.Append(" (");
header.Append(string.Join(";", [
header.AppendJoin(';',
FormatUserAgentParameter("lang", "DOTNET"),
FormatUserAgentParameter("v", DotNetVersion),
FormatUserAgentParameter("clr", DotNetClrVersion),
FormatUserAgentParameter("bit", OperatingSystemBitness),
FormatUserAgentParameter("os", OperatingSystemName),
]));
header.Append(")");
FormatUserAgentParameter("os", OperatingSystemName)
);
header.Append(')');

return header.ToString();
}
Expand Down
148 changes: 78 additions & 70 deletions src/PayPal.Sdk.Checkout/PayPal.Sdk.Checkout.csproj
Original file line number Diff line number Diff line change
@@ -1,70 +1,78 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>12.0</LangVersion>
<Nullable>enable</Nullable>
<VersionPrefix>1.0.0</VersionPrefix>
<Owners>PayPal</Owners>
<RepositoryUrl>https://github.com/aviationexam/PayPal.Sdk.Checkout</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageProjectUrl>https://github.com/aviationexam/PayPal.Sdk.Checkout</PackageProjectUrl>
<Title>PayPalCheckoutSdk</Title>
<Authors>PayPal, Aviationexams</Authors>
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>

<PropertyGroup Condition=" '$(TargetFramework)' == 'net8.0' " Label="Enable AOT">
<IsAotCompatible>true</IsAotCompatible>
</PropertyGroup>

<PropertyGroup>
<!-- DefaultJsonSerializerContext configuration is required to generate UseEnumConverters method -->
<AVI_EJC_DefaultJsonSerializerContext_ClassAccessibility>internal</AVI_EJC_DefaultJsonSerializerContext_ClassAccessibility>
<AVI_EJC_DefaultJsonSerializerContext_Namespace>PayPal.Sdk.Checkout.Core.MessageSerializers</AVI_EJC_DefaultJsonSerializerContext_Namespace>
<AVI_EJC_DefaultJsonSerializerContext_ClassName>PayPalJsonSerializerContext</AVI_EJC_DefaultJsonSerializerContext_ClassName>

<!-- Allowed options BackingType, FirstEnumName. Default value FirstEnumName -->
<AVI_EJC_DefaultEnumSerializationStrategy>FirstEnumName</AVI_EJC_DefaultEnumSerializationStrategy>

<!-- Allowed options UseBackingType, UseEnumName, or UseBackingType|UseEnumName (DeserializationStrategy is Flags enum). Default value UseEnumName -->
<AVI_EJC_DefaultEnumDeserializationStrategy>UseBackingType|UseEnumName</AVI_EJC_DefaultEnumDeserializationStrategy>
</PropertyGroup>

<PropertyGroup Label="Configure GitInfo">
<GitInfo_RootDirectory>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'PayPal.Sdk.Checkout.sln'))\.git</GitInfo_RootDirectory>

<GitInfo_Namespace>PayPal.Sdk.Checkout</GitInfo_Namespace>

<!-- optional, default value 9 -->
<GitInfo_CommitAbbreviatedLength>9</GitInfo_CommitAbbreviatedLength>

<!-- optional, default value true -->
<GitInfo_UseCache>true</GitInfo_UseCache>

<!-- optional, default value false -->
<!-- it check only cache existence, not that HEAD equals HEAD in cache -->
<GitInfo_UseAggressiveCache>false</GitInfo_UseAggressiveCache>
</PropertyGroup>

<ItemGroup>
<None Include="..\..\LICENSE.txt" Pack="true" PackagePath="" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Aviationexam.GeneratedJsonConverters.SourceGenerator" Version="0.1.19" PrivateAssets="all" />
<PackageReference Include="GitReader.SourceGenerator" Version="0.1.11" PrivateAssets="all" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.179" PrivateAssets="all" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />
<PackageReference Include="System.Text.Json" Version="8.0.5" />
</ItemGroup>

</Project>
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<LangVersion>12.0</LangVersion>
<Nullable>enable</Nullable>
<VersionPrefix>1.0.0</VersionPrefix>
<Owners>PayPal</Owners>
<RepositoryUrl>https://github.com/aviationexam/PayPal.Sdk.Checkout</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageProjectUrl>https://github.com/aviationexam/PayPal.Sdk.Checkout</PackageProjectUrl>
<Title>PayPalCheckoutSdk</Title>
<Authors>PayPal, Aviationexams</Authors>
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>

<PropertyGroup Label="Enable AOT">
<IsAotCompatible>true</IsAotCompatible>
</PropertyGroup>

<PropertyGroup>
<!-- DefaultJsonSerializerContext configuration is required to generate UseEnumConverters method -->
<AVI_EJC_DefaultJsonSerializerContext_ClassAccessibility>internal</AVI_EJC_DefaultJsonSerializerContext_ClassAccessibility>
<AVI_EJC_DefaultJsonSerializerContext_Namespace>PayPal.Sdk.Checkout.Core.MessageSerializers</AVI_EJC_DefaultJsonSerializerContext_Namespace>
<AVI_EJC_DefaultJsonSerializerContext_ClassName>PayPalJsonSerializerContext</AVI_EJC_DefaultJsonSerializerContext_ClassName>

<!-- Allowed options BackingType, FirstEnumName. Default value FirstEnumName -->
<AVI_EJC_DefaultEnumSerializationStrategy>FirstEnumName</AVI_EJC_DefaultEnumSerializationStrategy>

<!-- Allowed options UseBackingType, UseEnumName, or UseBackingType|UseEnumName (DeserializationStrategy is Flags enum). Default value UseEnumName -->
<AVI_EJC_DefaultEnumDeserializationStrategy>UseBackingType|UseEnumName</AVI_EJC_DefaultEnumDeserializationStrategy>
</PropertyGroup>

<PropertyGroup Label="Configure GitInfo">
<GitInfo_RootDirectory>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'PayPal.Sdk.Checkout.sln'))\.git</GitInfo_RootDirectory>

<GitInfo_Namespace>PayPal.Sdk.Checkout</GitInfo_Namespace>

<!-- optional, default value 9 -->
<GitInfo_CommitAbbreviatedLength>9</GitInfo_CommitAbbreviatedLength>

<!-- optional, default value true -->
<GitInfo_UseCache>true</GitInfo_UseCache>

<!-- optional, default value false -->
<!-- it check only cache existence, not that HEAD equals HEAD in cache -->
<GitInfo_UseAggressiveCache>false</GitInfo_UseAggressiveCache>
</PropertyGroup>

<ItemGroup>
<None Include="..\..\LICENSE.txt" Pack="true" PackagePath="" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Aviationexam.GeneratedJsonConverters.SourceGenerator" Version="0.2.0" PrivateAssets="all" />
<PackageReference Include="GitReader.SourceGenerator" Version="0.1.11" PrivateAssets="all" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.179" PrivateAssets="all" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />
<PackageReference Include="System.Text.Json" Version="8.0.5" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net9.0' ">
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="9.0.0" />
<PackageReference Include="System.Text.Json" Version="9.0.0" />
</ItemGroup>

</Project>
91 changes: 52 additions & 39 deletions tests/PayPal.Sdk.Checkout.Test/PayPal.Sdk.Checkout.Test.csproj
Original file line number Diff line number Diff line change
@@ -1,39 +1,52 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>12.0</LangVersion>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\PayPal.Sdk.Checkout\PayPal.Sdk.Checkout.csproj" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.179" PrivateAssets="all" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />
</ItemGroup>

<ItemGroup>
<Content Update="appsettings.json5" CopyToPublishDirectory="Always" CopyToOutputDirectory="Always" />
<Content Update="*.appsettings.json5" CopyToPublishDirectory="Always" CopyToOutputDirectory="Always" />
</ItemGroup>

</Project>
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<LangVersion>12.0</LangVersion>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\PayPal.Sdk.Checkout\PayPal.Sdk.Checkout.csproj" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.179" PrivateAssets="all" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net9.0' ">
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="9.0.0" />
</ItemGroup>

<ItemGroup>
<Content Update="appsettings.json5" CopyToPublishDirectory="Always" CopyToOutputDirectory="Always" />
<Content Update="*.appsettings.json5" CopyToPublishDirectory="Always" CopyToOutputDirectory="Always" />
</ItemGroup>

</Project>

0 comments on commit 7293a62

Please sign in to comment.