diff --git a/.github/upgrades/dotnet-upgrade-plan.md b/.github/upgrades/dotnet-upgrade-plan.md new file mode 100644 index 0000000..0ad5fb5 --- /dev/null +++ b/.github/upgrades/dotnet-upgrade-plan.md @@ -0,0 +1,70 @@ +# .NET 8.0 Upgrade Plan + +## Execution Steps + +Execute steps below sequentially one by one in the order they are listed. + +1. Validate that an .NET 8.0 SDK required for this upgrade is installed on the machine and if not, help to get it installed. +2. Ensure that the SDK version specified in global.json files is compatible with the .NET 8.0 upgrade. +3. Upgrade ClipTrimDotNet\ClipTrimDotNet.csproj +4. Run unit tests to validate upgrade in the projects listed below: + - ClientTest\ClientTest.csproj + +## Settings + +This section contains settings and data used by execution steps. + +### Excluded projects + +| Project name | Description | +|:-----------------------------------------------|:---------------------------:| + +### Aggregate NuGet packages modifications across all projects + +NuGet packages used across all selected projects or their dependencies that need version update in projects that reference them. + +| Package Name | Current Version | New Version | Description | +|:------------------------------------|:---------------:|:-----------:|:----------------------------------------------| +| Microsoft.Bcl.AsyncInterfaces | 10.0.2 | 8.0.0 | Recommended for .NET 8.0 | +| Microsoft.Extensions.DependencyInjection | 10.0.2 | 8.0.1 | Recommended for .NET 8.0 | +| Microsoft.Extensions.DependencyInjection.Abstractions | 10.0.2 | 8.0.2 | Recommended for .NET 8.0 | +| Microsoft.Extensions.Logging | 10.0.2 | 8.0.1 | Recommended for .NET 8.0 | +| Microsoft.Extensions.Logging.Abstractions | 10.0.2 | 8.0.3 | Recommended for .NET 8.0 | +| Microsoft.Extensions.Options | 10.0.2 | 8.0.2 | Recommended for .NET 8.0 | +| Microsoft.Extensions.Primitives | 10.0.2 | 8.0.0 | Recommended for .NET 8.0 | +| System.Diagnostics.DiagnosticSource | 10.0.2 | 8.0.1 | Recommended for .NET 8.0 | +| System.Drawing.Common | 9.0.10 | 8.0.24 | Recommended for .NET 8.0 | +| System.IO.Pipelines | 10.0.2 | 8.0.0 | Recommended for .NET 8.0 | +| System.Security.AccessControl | 4.7.0 | 6.0.1 | Recommended for .NET 8.0 | +| System.Text.Encodings.Web | 10.0.2 | 8.0.0 | Recommended for .NET 8.0 | +| System.Text.Json | 10.0.2 | 8.0.6 | Recommended for .NET 8.0 | +| Microsoft.Win32.Registry | 4.7.0 | | Functionality included with framework | +| System.Buffers | 4.6.1 | | Functionality included with framework | +| System.IO | 4.3.0 | | Functionality included with framework | +| System.Memory | 4.6.3 | | Functionality included with framework | +| System.Net.Http | 4.3.4 | | Functionality included with framework | +| System.Numerics.Vectors | 4.6.1 | | Functionality included with framework | +| System.Runtime | 4.3.0 | | Functionality included with framework | +| System.Security.Cryptography.Algorithms | 4.3.0 | | Functionality included with framework | +| System.Security.Cryptography.Encoding | 4.3.0 | | Functionality included with framework | +| System.Security.Cryptography.Primitives | 4.3.0 | | Functionality included with framework | +| System.Security.Cryptography.X509Certificates | 4.3.0 | | Functionality included with framework | +| System.Security.Principal.Windows | 4.7.0 | | Functionality included with framework | +| System.Threading.Tasks.Extensions | 4.6.3 | | Functionality included with framework | +| System.ValueTuple | 4.6.1 | | Functionality included with framework | + +### Project upgrade details + +#### ClipTrimDotNet\ClipTrimDotNet.csproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.8` to `net8.0` + - Project file should be converted to SDK-style + +NuGet packages changes: + - Update all packages listed in the NuGet packages table above as recommended + - Remove packages whose functionality is now included with the framework + +Other changes: + - Ensure compatibility with .NET 8.0 APIs and features + - Update code as needed for breaking changes