Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.NET 9: Upgrade plan #2219

Open
4 of 5 tasks
raman-m opened this issue Nov 24, 2024 · 4 comments · Fixed by #2230, #2235 or #2239
Open
4 of 5 tasks

.NET 9: Upgrade plan #2219

raman-m opened this issue Nov 24, 2024 · 4 comments · Fixed by #2230, #2235 or #2239
Assignees
Labels
Core Ocelot Core related or system upgrade (not a public feature) highest Highest priority in progress Someone is working on the issue. Could be someone on the team or off. NET9 .NET 9 release
Milestone

Comments

@raman-m
Copy link
Member

raman-m commented Nov 24, 2024

Tasks

@raman-m raman-m added the Core Ocelot Core related or system upgrade (not a public feature) label Nov 24, 2024
@raman-m raman-m added this to the .NET 9 milestone Nov 24, 2024
@raman-m raman-m added the highest Highest priority label Nov 24, 2024
@raman-m raman-m self-assigned this Nov 24, 2024
@raman-m raman-m added the in progress Someone is working on the issue. Could be someone on the team or off. label Nov 25, 2024
@raman-m
Copy link
Member Author

raman-m commented Dec 4, 2024

From: docker/README.md

docker build

This folder contains the Dockerfile.* and build-*.sh scripts to create the Ocelot build image & container.

Account

Repositories

Outdated Tags

  • 8.21.0, uploaded on Nov 20, 2023. It contains .NET 8, 7 and 6 SDKs. It supports builds for net6.0, net7.0 and net8.0 frameworks.
  • 8.23.2, uploaded on Apr 3, 2024. It supports development SSL certificates by the command dotnet dev-certs https.
  • latest is version 8.23.2, uploaded on Apr 3, 2024.

.NET 8-9 Tags

Single SDK Tags

  • sdk-8-alpine-lin.net8, uploaded on Dec 3, 2024. This Linux OS image contains .NET 8 SDK only. It supports builds for net8.0 framework.
  • sdk-9-alpine-lin.net9, uploaded on Dec 3, 2024. This Linux OS image contains .NET 9 SDK only. It supports builds for net9.0 framework.
  • sdk8-nanoserver2022-win.net8, uploaded on Dec 3, 2024. This Windows OS image contains .NET 8 SDK only. It supports builds for net8.0 framework.
  • sdk9-nano2022-win.net9, uploaded on Dec 3, 2024. This Windows OS image contains .NET 9 SDK only. It supports builds for net9.0 framework.

Double SDKs Tags

  • sdk9-alpine-lin.net8-9 aka 9.24.0, uploaded on Dec 3, 2023. This Linux OS image contains .NET 8 and 9 SDKs. It supports builds for net8.0 and net9.0 frameworks.
  • sdk9-nano2022-win.net8-9 aka 9.24.win, uploaded on Dec 4, 2023. This Windows OS image contains .NET 8 and 9 SDKs. It supports builds for net8.0 and net9.0 frameworks.

Links

raman-m added a commit that referenced this issue Dec 6, 2024
…t frameworks (#2230)

* Update Docker

* Upgrade all packages and Microsoft artifacts:
1. to the most recent versions available
2. ideally to version 9.0.*

* Fix compilation errors

* Fix warnings except NU1902:

CS0618: 'DiscoveryApplicationBuilderExtensions.UseDiscoveryClient(IApplicationBuilder)' is obsolete: 'This method call is no longer needed, you should remove it.'

MSB3270: There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "C:\Users\rmaks\.nuget\packages\microsoft.servicefabric.data\7.1.2493\lib\netstandard2.0\Microsoft.ServiceFabric.Data.dll", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.

SYSLIB0057: 'X509Certificate2.X509Certificate2(string, string?, X509KeyStorageFlags)' is obsolete: 'Loading certificate data through the constructor or Import is obsolete. Use X509CertificateLoader instead to load certificates.'

Ignore NU1902: Package 'IdentityServer4' 4.1.2 has a known moderate severity vulnerability

* Fix IDE messages

* Fix integration tests:
The 'Should_be_able_to_use_token_from_ocelot_a_on_ocelot_b' test related to IdentityServer4 requires migration to .NET 9 or removing

* Build using the Docker image version 9.24.0 (Linux OS, double SDKs)

* Add `BddfyConfig` class to override the default BDDfy report behavior in `Steps`

* Disable BatchProcessors

* IDE0130: Namespace "Ocelot.AcceptanceTests" does not match folder structure, expected "Ocelot.AcceptanceTests.Properties"
Where -> \test\Ocelot.AcceptanceTests\Properties\BddfyConfig.cs L4

* Raynald is refactoring super star!
Warning: Unexpected character sequence in array element value.
Where: samples\Administration\Issue645.postman_collection.json L135+145

* CA1816: A method that is an implementation of Dispose does not call GC.SuppressFinalize; or a method that is not an implementation of Dispose calls GC.SuppressFinalize; or a method calls GC.SuppressFinalize and passes something other than this (Me in Visual Basic).
Where: test\Ocelot.AcceptanceTests\HeaderTests.cs L460

* CA1859: Using concrete types avoids virtual or interface call overhead and enables inlining.
Change type of variable 'client' from 'Ocelot.WebSockets.IClientWebSocket' to 'Ocelot.WebSockets.ClientWebSocketProxy' for improved performance
Where: test\Ocelot.AcceptanceTests\WebSocketTests.cs L128+180

* CA2211: Static fields that are neither constants nor read-only are not thread-safe. Access to such a field must be carefully controlled and requires advanced programming techniques to synchronize access to the class object.
Where: src\Ocelot.Administration\IdentityServerMiddlewareConfigurationProvider.cs L10

* IDE0044: Make field readonly
Where: test\Ocelot.AcceptanceTests\Properties\BddfyConfig.cs L21

* IDE0039 Use local function

* IDE0059 Avoid unnecessary value assignments in your code, as these likely indicate redundant value computations. If the value computation is not redundant and you intend to retain the assignment, then change the assignment target to a local variable whose name starts with an underscore and is optionally followed by an integer, such as '_', '_1', '_2', etc. These are treated as special discard symbol names.

* IDE1006 Naming rule violation: These words must begin with upper case characters

* IDE0079 Remove unnecessary suppression

* IDE0330 Use 'System.Threading.Lock'

* IDE1006 Naming rule violation: These words must begin with upper case characters:
Fix compilation error

* Ignore xUnit1004: Test methods should not be skipped
@raman-m
Copy link
Member Author

raman-m commented Dec 6, 2024

Status: Done 2 of 5 tasks

@raman-m raman-m reopened this Dec 6, 2024
raman-m added a commit that referenced this issue Dec 6, 2024
…t frameworks (#2230)

* Update Docker

* Upgrade all packages and Microsoft artifacts:
1. to the most recent versions available
2. ideally to version 9.0.*

* Fix compilation errors

* Fix warnings except NU1902:

CS0618: 'DiscoveryApplicationBuilderExtensions.UseDiscoveryClient(IApplicationBuilder)' is obsolete: 'This method call is no longer needed, you should remove it.'

MSB3270: There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "C:\Users\rmaks\.nuget\packages\microsoft.servicefabric.data\7.1.2493\lib\netstandard2.0\Microsoft.ServiceFabric.Data.dll", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project.

SYSLIB0057: 'X509Certificate2.X509Certificate2(string, string?, X509KeyStorageFlags)' is obsolete: 'Loading certificate data through the constructor or Import is obsolete. Use X509CertificateLoader instead to load certificates.'

Ignore NU1902: Package 'IdentityServer4' 4.1.2 has a known moderate severity vulnerability

* Fix IDE messages

* Fix integration tests:
The 'Should_be_able_to_use_token_from_ocelot_a_on_ocelot_b' test related to IdentityServer4 requires migration to .NET 9 or removing

* Build using the Docker image version 9.24.0 (Linux OS, double SDKs)

* Add `BddfyConfig` class to override the default BDDfy report behavior in `Steps`

* Disable BatchProcessors

* IDE0130: Namespace "Ocelot.AcceptanceTests" does not match folder structure, expected "Ocelot.AcceptanceTests.Properties"
Where -> \test\Ocelot.AcceptanceTests\Properties\BddfyConfig.cs L4

* Raynald is refactoring super star!
Warning: Unexpected character sequence in array element value.
Where: samples\Administration\Issue645.postman_collection.json L135+145

* CA1816: A method that is an implementation of Dispose does not call GC.SuppressFinalize; or a method that is not an implementation of Dispose calls GC.SuppressFinalize; or a method calls GC.SuppressFinalize and passes something other than this (Me in Visual Basic).
Where: test\Ocelot.AcceptanceTests\HeaderTests.cs L460

* CA1859: Using concrete types avoids virtual or interface call overhead and enables inlining.
Change type of variable 'client' from 'Ocelot.WebSockets.IClientWebSocket' to 'Ocelot.WebSockets.ClientWebSocketProxy' for improved performance
Where: test\Ocelot.AcceptanceTests\WebSocketTests.cs L128+180

* CA2211: Static fields that are neither constants nor read-only are not thread-safe. Access to such a field must be carefully controlled and requires advanced programming techniques to synchronize access to the class object.
Where: src\Ocelot.Administration\IdentityServerMiddlewareConfigurationProvider.cs L10

* IDE0044: Make field readonly
Where: test\Ocelot.AcceptanceTests\Properties\BddfyConfig.cs L21

* IDE0039 Use local function

* IDE0059 Avoid unnecessary value assignments in your code, as these likely indicate redundant value computations. If the value computation is not redundant and you intend to retain the assignment, then change the assignment target to a local variable whose name starts with an underscore and is optionally followed by an integer, such as '_', '_1', '_2', etc. These are treated as special discard symbol names.

* IDE1006 Naming rule violation: These words must begin with upper case characters

* IDE0079 Remove unnecessary suppression

* IDE0330 Use 'System.Threading.Lock'

* IDE1006 Naming rule violation: These words must begin with upper case characters:
Fix compilation error

* Ignore xUnit1004: Test methods should not be skipped

* Disable Uploading test coverage to https://coveralls.io/github/ThreeMammals/Ocelot
@raman-m raman-m added the NET9 .NET 9 release label Dec 6, 2024
raman-m added a commit that referenced this issue Dec 12, 2024
* Day 1
* Day 2
* Day 3
* Day 4
* Day 5
* Day 6
@raman-m
Copy link
Member Author

raman-m commented Dec 12, 2024

Status: Done 3 of 5 tasks

@raman-m
Copy link
Member Author

raman-m commented Dec 13, 2024

Status: Done 4 of 5 tasks

@raman-m raman-m reopened this Dec 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Core Ocelot Core related or system upgrade (not a public feature) highest Highest priority in progress Someone is working on the issue. Could be someone on the team or off. NET9 .NET 9 release
Projects
None yet
1 participant