From 84a6ab155b5958a9a97cbeb5c6d8971ba131c576 Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 11:53:03 +0100 Subject: [PATCH 01/13] Commit upgrade plan --- .github/upgrades/dotnet-upgrade-plan.md | 65 +++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/upgrades/dotnet-upgrade-plan.md diff --git a/.github/upgrades/dotnet-upgrade-plan.md b/.github/upgrades/dotnet-upgrade-plan.md new file mode 100644 index 0000000..b7080cd --- /dev/null +++ b/.github/upgrades/dotnet-upgrade-plan.md @@ -0,0 +1,65 @@ +# .NET 10.0 Upgrade Plan + +## Execution Steps + +Execute steps below sequentially one by one in the order they are listed. + +1. Validate that a .NET 10.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 10.0 upgrade. +3. Upgrade OpenAIChatGPTBlazor\OpenAIChatGPTBlazor.csproj +4. Upgrade Tests\UiTests\UiTests.csproj +5. Update global.json to .NET 10.0 SDK version +6. Update OpenAIChatGPTBlazor\Dockerfile to use .NET 10.0 base images +7. Update Tests\UiTests\Dockerfile to use .NET 10.0 base images +8. Update docker-compose.yml (if Docker base images need updating) +9. Update .github\workflows\azure-webapps-dotnet-core.yml to use .NET 10.0 +10. Update .github\workflows\ui-tests.yml to use .NET 10.0 +11. Run tests in Tests\UiTests\UiTests.csproj + +## Settings + +This section contains settings and data used by execution steps. + +### Excluded projects + +No projects are excluded from this upgrade. + +### 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 | +|:----------------------------------------------------|:-------------------------:|:----------------------------:|:------------------------------------------------------| +| Aspire.Azure.AI.OpenAI | 9.4.1-preview.1.25408.4 | 13.0.0-preview.1.25560.3 | Recommended for .NET 10.0 | +| Microsoft.VisualStudio.Azure.Containers.Tools.Targets | 1.21.0 | | Remove (no supported version for .NET 10.0) | + +### Project upgrade details + +This section contains details about each project upgrade and modifications that need to be done in the project. + +#### OpenAIChatGPTBlazor\OpenAIChatGPTBlazor.csproj modifications + +Project properties changes: + - Target framework should be changed from `net9.0` to `net10.0` + +NuGet packages changes: + - Aspire.Azure.AI.OpenAI should be updated from `9.4.1-preview.1.25408.4` to `13.0.0-preview.1.25560.3` (*recommended for .NET 10.0*) + - Microsoft.VisualStudio.Azure.Containers.Tools.Targets should be removed (*no supported version for .NET 10.0*) + +#### Tests\UiTests\UiTests.csproj modifications + +Project properties changes: + - Target framework should be changed from `net9.0` to `net10.0` + +NuGet packages changes: + - Microsoft.VisualStudio.Azure.Containers.Tools.Targets should be removed (*no supported version for .NET 10.0*) + +#### Infrastructure files modifications + +The following files need to be updated to support .NET 10.0: + +- **global.json**: Update SDK version from `9.0.100` to `10.0.100` (or latest available .NET 10 SDK version) +- **OpenAIChatGPTBlazor\Dockerfile**: Update base images from `mcr.microsoft.com/dotnet/aspnet:9.0` and `mcr.microsoft.com/dotnet/sdk:9.0` to version `10.0` +- **Tests\UiTests\Dockerfile**: Update base images from `mcr.microsoft.com/dotnet/sdk:9.0` to version `10.0` +- **.github\workflows\azure-webapps-dotnet-core.yml**: Workflow uses `global.json`, so it will automatically use .NET 10.0 SDK after global.json is updated +- **.github\workflows\ui-tests.yml**: Workflow uses `global.json`, so it will automatically use .NET 10.0 SDK after global.json is updated From 4e5c49e758eeab6e06e824deda12abc8aca436db Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 11:53:43 +0100 Subject: [PATCH 02/13] Store final changes for step 'Ensure that the SDK version specified in global.json files is compatible with the .NET 10.0 upgrade' --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index d5bf446..b3c9d99 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { "version": "9.0.100", - "rollForward": "latestFeature" + "rollForward": "latestMajor" } } \ No newline at end of file From 66f32a8e3582298e8f1543dcfa4f9157b86b126d Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 11:54:04 +0100 Subject: [PATCH 03/13] Update OpenAIChatGPTBlazor.csproj to .NET 10.0 Changed target framework from net9.0 to net10.0. Reformatted the Microsoft.VisualStudio.Azure.Containers.Tools.Targets package reference to a single line without changing its version. No other dependencies were modified. --- OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj b/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj index fb1630d..3835a42 100644 --- a/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj +++ b/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 enable enable a9111ff4-d5fb-46b5-9450-c68be5805382 @@ -13,10 +13,7 @@ - + all From 986f439c3c035b7b98747ba5955bce8e498cc8f8 Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 11:54:08 +0100 Subject: [PATCH 04/13] Update OpenAIChatGPTBlazor.csproj package references Upgraded Aspire.Azure.AI.OpenAI package from version 9.4.1-preview.1.25408.4 to 13.0.0-preview.1.25560.3. Removed the Microsoft.VisualStudio.Azure.Containers.Tools.Targets package reference. No other changes were made to the project file. --- OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj b/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj index 3835a42..0a58667 100644 --- a/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj +++ b/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj @@ -7,13 +7,12 @@ Linux - + - all From 8d40bb574abd104d46298f749bca82a5fccea51d Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 11:54:42 +0100 Subject: [PATCH 05/13] Update Azure.Identity to version 1.17.0 in csproj file Upgraded the Azure.Identity NuGet package from version 1.14.2 to 1.17.0 in the OpenAIChatGPTBlazor.csproj project file to ensure compatibility and access to the latest features and fixes. No other dependencies were changed. --- OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj b/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj index 0a58667..886b09a 100644 --- a/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj +++ b/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj @@ -8,7 +8,7 @@ - + From 03afff5e90b4a82f88270a82fc2c67f1449a5bf6 Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 11:55:39 +0100 Subject: [PATCH 06/13] Update UiTests.csproj to target .NET 10 and tidy packages Changed the target framework in UiTests.csproj from net9.0 to net10.0. Also reformatted the Microsoft.VisualStudio.Azure.Containers.Tools.Targets package reference to a single line for consistency, with no changes to package versions or dependencies. --- Tests/UiTests/UiTests.csproj | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Tests/UiTests/UiTests.csproj b/Tests/UiTests/UiTests.csproj index 147b3df..434eb95 100644 --- a/Tests/UiTests/UiTests.csproj +++ b/Tests/UiTests/UiTests.csproj @@ -1,6 +1,6 @@  - net9.0 + net10.0 enable enable false @@ -16,10 +16,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - + all From dfb02f281a7566ceaab243bc343d5c6c09d9c340 Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 11:55:41 +0100 Subject: [PATCH 07/13] Remove Azure Containers Tools from UiTests.csproj Removed the Microsoft.VisualStudio.Azure.Containers.Tools.Targets package reference from the UiTests.csproj file, cleaning up unnecessary dependencies. Other package references remain unchanged. --- Tests/UiTests/UiTests.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/Tests/UiTests/UiTests.csproj b/Tests/UiTests/UiTests.csproj index 434eb95..129094f 100644 --- a/Tests/UiTests/UiTests.csproj +++ b/Tests/UiTests/UiTests.csproj @@ -16,7 +16,6 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - all From ee4b54d7b7dc9ad3ed62fd78bd2ec103bc567a7e Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 12:05:53 +0100 Subject: [PATCH 08/13] Store final changes for step 'Update global.json to .NET 10.0 SDK version' --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index b3c9d99..4ae80ef 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "9.0.100", + "version": "10.0.100", "rollForward": "latestMajor" } -} \ No newline at end of file +} From 49f249eca62b951adc29918e8890baccc2612441 Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 12:06:23 +0100 Subject: [PATCH 09/13] Store final changes for step 'Update OpenAIChatGPTBlazor\Dockerfile to use .NET 10.0 base images' --- OpenAIChatGPTBlazor/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OpenAIChatGPTBlazor/Dockerfile b/OpenAIChatGPTBlazor/Dockerfile index 9ccd21c..bab1dbd 100644 --- a/OpenAIChatGPTBlazor/Dockerfile +++ b/OpenAIChatGPTBlazor/Dockerfile @@ -1,11 +1,11 @@ #See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. -FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 -FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build WORKDIR /src COPY ["OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj", "OpenAIChatGPTBlazor/"] RUN dotnet restore "OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj" @@ -19,4 +19,4 @@ RUN dotnet publish "OpenAIChatGPTBlazor.csproj" -c Release -o /app/publish /p:Us FROM base AS final WORKDIR /app COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "OpenAIChatGPTBlazor.dll"] \ No newline at end of file +ENTRYPOINT ["dotnet", "OpenAIChatGPTBlazor.dll"] From 29757f70584c47a3ef942a2a0feefdab1c263a3d Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 12:06:42 +0100 Subject: [PATCH 10/13] Store final changes for step 'Update Tests\UiTests\Dockerfile to use .NET 10.0 base images' --- Tests/UiTests/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Tests/UiTests/Dockerfile b/Tests/UiTests/Dockerfile index ef009e8..4e4d725 100644 --- a/Tests/UiTests/Dockerfile +++ b/Tests/UiTests/Dockerfile @@ -1,9 +1,9 @@ #See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. -FROM mcr.microsoft.com/dotnet/sdk:9.0 AS base +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS base WORKDIR /app -FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build ARG BUILD_CONFIGURATION=Release WORKDIR /src COPY ["Tests/UiTests/UiTests.csproj", "Tests/UiTests/"] @@ -31,4 +31,4 @@ RUN pwsh ./playwright.ps1 install-deps chromium #COPY --from=build /app/build . WORKDIR "/src/Tests/UiTests" -ENTRYPOINT ["dotnet", "test"] \ No newline at end of file +ENTRYPOINT ["dotnet", "test"] From a8167822a0adf168462d8373e13bf0b9483a21e1 Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 13:25:04 +0100 Subject: [PATCH 11/13] Downgrade Aspire.Azure.AI.OpenAI package version The version of the `Aspire.Azure.AI.OpenAI` package has been downgraded from `13.0.0-preview.1.25560.3` to `9.5.2-preview.1.25522.3` in the `OpenAIChatGPTBlazor.csproj` file. This change may have been made to address compatibility issues or to align with other dependencies. --- OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj b/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj index 886b09a..8644446 100644 --- a/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj +++ b/OpenAIChatGPTBlazor/OpenAIChatGPTBlazor.csproj @@ -7,7 +7,7 @@ Linux - + From 720135bc2a93517438262d49fbf90523a491b74f Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 13:27:03 +0100 Subject: [PATCH 12/13] remove upgrade plan --- .github/upgrades/dotnet-upgrade-plan.md | 65 ------------------------- 1 file changed, 65 deletions(-) delete mode 100644 .github/upgrades/dotnet-upgrade-plan.md diff --git a/.github/upgrades/dotnet-upgrade-plan.md b/.github/upgrades/dotnet-upgrade-plan.md deleted file mode 100644 index b7080cd..0000000 --- a/.github/upgrades/dotnet-upgrade-plan.md +++ /dev/null @@ -1,65 +0,0 @@ -# .NET 10.0 Upgrade Plan - -## Execution Steps - -Execute steps below sequentially one by one in the order they are listed. - -1. Validate that a .NET 10.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 10.0 upgrade. -3. Upgrade OpenAIChatGPTBlazor\OpenAIChatGPTBlazor.csproj -4. Upgrade Tests\UiTests\UiTests.csproj -5. Update global.json to .NET 10.0 SDK version -6. Update OpenAIChatGPTBlazor\Dockerfile to use .NET 10.0 base images -7. Update Tests\UiTests\Dockerfile to use .NET 10.0 base images -8. Update docker-compose.yml (if Docker base images need updating) -9. Update .github\workflows\azure-webapps-dotnet-core.yml to use .NET 10.0 -10. Update .github\workflows\ui-tests.yml to use .NET 10.0 -11. Run tests in Tests\UiTests\UiTests.csproj - -## Settings - -This section contains settings and data used by execution steps. - -### Excluded projects - -No projects are excluded from this upgrade. - -### 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 | -|:----------------------------------------------------|:-------------------------:|:----------------------------:|:------------------------------------------------------| -| Aspire.Azure.AI.OpenAI | 9.4.1-preview.1.25408.4 | 13.0.0-preview.1.25560.3 | Recommended for .NET 10.0 | -| Microsoft.VisualStudio.Azure.Containers.Tools.Targets | 1.21.0 | | Remove (no supported version for .NET 10.0) | - -### Project upgrade details - -This section contains details about each project upgrade and modifications that need to be done in the project. - -#### OpenAIChatGPTBlazor\OpenAIChatGPTBlazor.csproj modifications - -Project properties changes: - - Target framework should be changed from `net9.0` to `net10.0` - -NuGet packages changes: - - Aspire.Azure.AI.OpenAI should be updated from `9.4.1-preview.1.25408.4` to `13.0.0-preview.1.25560.3` (*recommended for .NET 10.0*) - - Microsoft.VisualStudio.Azure.Containers.Tools.Targets should be removed (*no supported version for .NET 10.0*) - -#### Tests\UiTests\UiTests.csproj modifications - -Project properties changes: - - Target framework should be changed from `net9.0` to `net10.0` - -NuGet packages changes: - - Microsoft.VisualStudio.Azure.Containers.Tools.Targets should be removed (*no supported version for .NET 10.0*) - -#### Infrastructure files modifications - -The following files need to be updated to support .NET 10.0: - -- **global.json**: Update SDK version from `9.0.100` to `10.0.100` (or latest available .NET 10 SDK version) -- **OpenAIChatGPTBlazor\Dockerfile**: Update base images from `mcr.microsoft.com/dotnet/aspnet:9.0` and `mcr.microsoft.com/dotnet/sdk:9.0` to version `10.0` -- **Tests\UiTests\Dockerfile**: Update base images from `mcr.microsoft.com/dotnet/sdk:9.0` to version `10.0` -- **.github\workflows\azure-webapps-dotnet-core.yml**: Workflow uses `global.json`, so it will automatically use .NET 10.0 SDK after global.json is updated -- **.github\workflows\ui-tests.yml**: Workflow uses `global.json`, so it will automatically use .NET 10.0 SDK after global.json is updated From 90d3a2ee5959ca2e6ace7644163e4c8f156c525d Mon Sep 17 00:00:00 2001 From: lxbdev Date: Tue, 18 Nov 2025 13:28:25 +0100 Subject: [PATCH 13/13] Update SDK roll-forward policy in global.json Changed the `rollForward` setting in `global.json` from "latestMajor" to "latestFeature". This adjustment ensures that the project will roll forward to the latest feature version within the same major version, maintaining compatibility while allowing for feature improvements and bug fixes. --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 4ae80ef..512142d 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { "version": "10.0.100", - "rollForward": "latestMajor" + "rollForward": "latestFeature" } }