diff --git a/.github/upgrades/dotnet-upgrade-plan.md b/.github/upgrades/dotnet-upgrade-plan.md new file mode 100644 index 00000000..8e92346f --- /dev/null +++ b/.github/upgrades/dotnet-upgrade-plan.md @@ -0,0 +1,183 @@ +# .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 Logging\Logging.vbproj. +4. Upgrade Encryption\Encryption.vbproj. +5. Upgrade Base\Base.vbproj. +6. Upgrade ZooFlow\ZooFlow.vbproj. +7. Upgrade Interfaces\Interfaces.vbproj. +8. Upgrade Database\Database.vbproj. +9. Upgrade Config\Config.vbproj. +10. Upgrade Filesystem\Filesystem.vbproj. +11. Upgrade Messaging\Messaging.vbproj. +12. Upgrade Windream\Windream.vbproj. +13. Upgrade Windows\Windows.vbproj. +14. Upgrade Patterns\Patterns.vbproj. +15. Upgrade License\License.vbproj. +16. Upgrade Jobs\Jobs.vbproj. +17. Upgrade EDMIAPI\EDMI.API.vbproj. + +## Settings + +This section contains settings and data used by execution steps. + +### Excluded projects + +Keine Projekte ausgeschlossen. + +### 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 | +|:-------------------------------------------|:---------------:|:-----------:|:----------------------------------------------------------------------------| +| DigitalData.Modules.Logging | 2.6.5 | | No supported .NET 8 compatible package available; evaluate replacement. | +| EntityFramework | 6.4.4 | 6.5.1 | Required newer EF 6.5.1 for .NET 8 compatibility and LTS support. | +| EntityFramework.Firebird | 6.4.0 | 10.1.0 | Update to Firebird 10.1.0 for .NET 8 compatibility. | +| GdPicture | 14.3.18 | 14.2.100 | Use 14.2.100 as recommended compatible build. | +| Microsoft.Identity.Client | 4.55.0 | 4.79.2 | Security vulnerability fix and current MSAL LTS recommendation. | +| Microsoft.IdentityModel.Abstractions | 6.22.0 | 8.15.0 | Move to latest IdentityModel LTS version. | +| Microsoft.VisualBasic | 10.3.0 | | Functionality provided by .NET 8 framework reference; remove package. | +| Newtonsoft.Json | 13.0.3 | 13.0.4 | Bring Newtonsoft.Json to supported patch level. | +| S22.Imap | 3.6.0.0 | | No supported .NET 8 compatible package available; evaluate alternative. | +| System.Buffers | 4.6.0 | | Functionality provided by .NET 8 framework reference; remove package. | +| System.Data.Odbc | 6.0.1 | 8.0.1 | Update to provider version aligned with .NET 8. | +| System.Memory | 4.6.0 | | Functionality provided by .NET 8 framework reference; remove package. | +| System.Numerics.Vectors | 4.6.0 | | Functionality provided by .NET 8 framework reference; remove package. | +| System.Runtime.CompilerServices.Unsafe | 6.1.0 | 6.1.2 | Align with latest patch to match .NET 8 dependencies. | +| System.Threading.Tasks.Extensions | 4.5.4 | | Functionality provided by .NET 8 framework reference; remove package. | +| System.ValueTuple | 4.5.0 | | Functionality provided by .NET 8 framework reference; remove package. | + +### Project upgrade details + +#### Logging/Logging.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0`. + - Convert the project file to SDK-style format. + +#### Encryption/Encryption.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0`. + - Convert the project file to SDK-style format. + +#### Base/Base.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0-windows`. + - Convert the project file to SDK-style format. + +#### ZooFlow/ZooFlow.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0-windows`. + - Convert the project file to SDK-style format. + +#### Interfaces/Interfaces.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0`. + - Convert the project file to SDK-style format. + +NuGet packages changes: + - Update `GdPicture` from `14.3.18` to `14.2.100` (compatibility recommendation). + - Update `Newtonsoft.Json` from `13.0.3` to `13.0.4`. + - Update `System.Runtime.CompilerServices.Unsafe` from `6.1.0` to `6.1.2`. + - Remove `Microsoft.VisualBasic`, `System.Buffers`, `System.Memory`, `System.Numerics.Vectors`, `System.Threading.Tasks.Extensions`, and `System.ValueTuple` because their APIs are provided by the .NET 8 framework. + +#### Database/Database.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0`. + - Convert the project file to SDK-style format. + +NuGet packages changes: + - Update `EntityFramework.Firebird` from `6.4.0` to `10.1.0`. + - Update `EntityFramework` from `6.4.4` to `6.5.1`. + - Update `System.Data.Odbc` from `6.0.1` to `8.0.1`. + +#### Config/Config.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0-windows`. + - Convert the project file to SDK-style format. + +NuGet packages changes: + - Update `EntityFramework.Firebird` from `6.4.0` to `10.1.0`. + - Update `EntityFramework` from `6.4.4` to `6.5.1`. + - Update `System.Data.Odbc` from `6.0.1` to `8.0.1`. + +#### Filesystem/Filesystem.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0`. + - Convert the project file to SDK-style format. + +#### Messaging/Messaging.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0-windows`. + - Convert the project file to SDK-style format. + +NuGet packages changes: + - `DigitalData.Modules.Logging` 2.6.5 has no supported .NET 8 version; evaluate migrating to an updated logging package. + - `S22.Imap` 3.6.0.0 has no supported .NET 8 version; evaluate replacement. + - Update `Microsoft.Identity.Client` from `4.55.0` to `4.79.2` (security fix). + - Update `Microsoft.IdentityModel.Abstractions` from `6.22.0` to `8.15.0`. + +#### Windream/Windream.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0`. + - Convert the project file to SDK-style format. + +NuGet packages changes: + - `DigitalData.Modules.Logging` 2.6.5 has no supported .NET 8 version; evaluate migrating to an updated logging package. + +#### Windows/Windows.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0-windows`. + - Convert the project file to SDK-style format. + +NuGet packages changes: + - `DigitalData.Modules.Logging` 2.6.5 has no supported .NET 8 version; evaluate migrating to an updated logging package. + +#### Patterns/Patterns.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0-windows`. + - Convert the project file to SDK-style format. + +NuGet packages changes: + - `DigitalData.Modules.Logging` 2.6.5 has no supported .NET 8 version; evaluate migrating to an updated logging package. + +#### License/License.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0`. + - Convert the project file to SDK-style format. + +#### Jobs/Jobs.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0`. + - Convert the project file to SDK-style format. + +NuGet packages changes: + - Update `GdPicture` from `14.3.18` to `14.2.100`. + - Update `Newtonsoft.Json` from `13.0.3` to `13.0.4`. + - Update `System.Runtime.CompilerServices.Unsafe` from `6.1.0` to `6.1.2`. + - Remove `Microsoft.VisualBasic`, `System.Buffers`, `System.Memory`, `System.Numerics.Vectors`, `System.Threading.Tasks.Extensions`, and `System.ValueTuple` because their APIs are provided by the .NET 8 framework. + +#### EDMIAPI/EDMI.API.vbproj modifications + +Project properties changes: + - Target framework should be changed from `.NETFramework,Version=v4.6.2` to `net8.0`. + - Convert the project file to SDK-style format.