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

Closed
5 tasks done
raman-m opened this issue Nov 24, 2024 · 5 comments · Fixed by #2230, #2235, #2239 or #2258
Closed
5 tasks done

.NET 9: Upgrade plan #2219

raman-m opened this issue Nov 24, 2024 · 5 comments · Fixed by #2230, #2235, #2239 or #2258
Assignees
Labels
Core Ocelot Core related or system upgrade (not a public feature) merged Issue has been merged to dev and is waiting for the next release 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
raman-m added a commit that referenced this issue Mar 27, 2025
* #2217 Answer to How can I configure Ocelot programmatically?

* Update README.md

* Review license and readme.
Check new signing GPG key

* Docs config & Update Introduction docs

* Disable BddfyConfig

* Update README.md

Keep images in the assets branch and read them from raw.githubusercontent.com

* Delete images directory

All images should be located in the ASSETS branch

* Update workflows

* Disable icon embedding

* Update features A-C

* Update Configuration feature doc:
Add schemas
Add Overview section
Organize sections

* Configuration feature doc

* remove namespace

* Delegating Handlers feature

* Dependency Injection feature

* Features E-K

* Load Balancer feature

* Logging feature vs Error Handling one

* Add Metadata sample

* Metadata sample: JSON responder.
Serialize route metadata JSON to HTTP response body

* Metadata sample: Rename to MetadataResponder

* Metadata sample: Test gzip & deflate encodings.
Add OC-Route-Metadata header

* Metadata sample: DONE

* Update metadata.rst

* Metadata feature (complete doc)

* Method Transformation feature

* Review Kubernetes doc after rebasing

* Middleware Injection feature

* Quality of Service feature

* Rate Limiting feature

* Update requestaggregation.rst: Rename to aggregation.rst

* Aggregation feature

* Request ID feature

* Merge Request ID doc into Logging one

* Routing feature

* Service Discovery feature

* Service Fabric feature

* Tracing doc looks good!

* Websockets doc looks good too!

* Update Building Ocelot docs.
Move content of building.rst and tests.rst to overview.rst.
Remove [building.rst, tests.rst] from index
@raman-m
Copy link
Member Author

raman-m commented Mar 27, 2025

Status: Done 100% (5 tasks)

@raman-m raman-m removed in progress Someone is working on the issue. Could be someone on the team or off. highest Highest priority labels Mar 27, 2025
@raman-m raman-m added the merged Issue has been merged to dev and is waiting for the next release label Mar 27, 2025
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) merged Issue has been merged to dev and is waiting for the next release NET9 .NET 9 release
Projects
None yet
1 participant