From 334432fe0fc003e997d36f248e192e4c5dd6f4d3 Mon Sep 17 00:00:00 2001 From: Raman Maksimchuk Date: Fri, 29 Mar 2024 20:18:07 +0300 Subject: [PATCH] Release 23.2 artifacts | +semver: minor (#2022) * Release notes * Update docs * Lunar Eclipse codename --- ReleaseNotes.md | 46 +++++++++++++--- docs/conf.py | 4 +- docs/features/dependencyinjection.rst | 4 +- docs/index.rst | 76 ++++++++++++++++++++++++++- 4 files changed, 119 insertions(+), 11 deletions(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 5901c7926..06d1ab38a 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,20 +1,54 @@ -## February 2024 (version {0}) aka [February'24](https://github.com/ThreeMammals/Ocelot/milestone/5) release -> Codenamed as **[February'24](https://github.com/ThreeMammals/Ocelot/milestone/5)** +## February 2024 (version {0}) aka [Lunar Eclipse](https://www.timeanddate.com/eclipse/lunar/2024-march-25) release +> Codenamed: **[Lunar Eclipse](https://www.bing.com/search?q=Lunar+Eclipse+2024)** > Read the Docs: [Ocelot 23.2](https://ocelot.readthedocs.io/en/23.2.0/) +### What's new? + +- **[Configuration](https://ocelot.readthedocs.io/en/latest/features/configuration.html)**: A brand new [Merging files to memory](https://ocelot.readthedocs.io/en/23.2.0/features/configuration.html#merging-files-to-memory) by @ebjornset as a part of the [Merging Configuration Files](https://ocelot.readthedocs.io/en/23.2.0/features/configuration.html#merging-configuration-files) feature. + The `AddOcelot` method merges the **ocelot.*.json** files into a single **ocelot.json** file as the primary configuration file, which is written back to disk and then added to the `IConfigurationBuilder` for the well-known `IConfiguration`. You can now call another `AddOcelot` method that adds the merged JSON directly from memory to the `IConfigurationBuilder`, using `AddJsonStream` instead. + See more details in [Configuration Overview](https://ocelot.readthedocs.io/en/23.2.0/features/dependencyinjection.html#configuration-overview) of [Dependency Injection](https://ocelot.readthedocs.io/en/23.2.0/features/dependencyinjection.html). +- **[Service Fabric](https://ocelot.readthedocs.io/en/latest/features/servicefabric.html)**: Published old undocumented "[Placeholders in Service Name](https://ocelot.readthedocs.io/en/23.2.0/features/servicefabric.html#placeholders-in-service-name)" feature of [Service Fabric](https://ocelot.readthedocs.io/en/23.2.0/features/servicefabric.html) [service discovery provider](https://ocelot.readthedocs.io/en/23.2.0/search.html?q=ServiceDiscoveryProvider). + This feature by @FelixBoers is available starting from version [13.0.0](https://github.com/ThreeMammals/Ocelot/releases/tag/13.0.0). +- **[Quality of Service](https://ocelot.readthedocs.io/en/latest/features/qualityofservice.html)**: A brand new [Polly](https://github.com/App-vNext/Polly) v8 pipelines [Extensibility](https://ocelot.readthedocs.io/en/23.2.0/features/qualityofservice.html#extensibility) feature by @RaynaldM + ### Focus On
- New features of: Service Fabric and ... + Updates of the features: Configuration, Dependency Injection and QoS -- **[Service Fabric](https://ocelot.readthedocs.io/en/latest/features/servicefabric.html)**: Published old undocumented "[Placeholders in Service Name](https://ocelot.readthedocs.io/en/23.2.0/features/servicefabric.html#placeholders-in-service-name)" feature of [Service Fabric](https://ocelot.readthedocs.io/en/23.2.0/features/servicefabric.html) [service discovery provider](https://ocelot.readthedocs.io/en/23.2.0/search.html?q=ServiceDiscoveryProvider). This feature is available starting from version [13.0.0](https://github.com/ThreeMammals/Ocelot/releases/tag/13.0.0). + - [Configuration](https://ocelot.readthedocs.io/en/latest/features/configuration.html): New [Merging files to memory](https://ocelot.readthedocs.io/en/23.2.0/features/configuration.html#merging-files-to-memory) feature by @ebjornset + - [Dependency Injection](https://ocelot.readthedocs.io/en/latest/features/dependencyinjection.html): Added new overloaded [AddOcelot methods](https://ocelot.readthedocs.io/en/23.2.0/features/dependencyinjection.html#addocelot-method) by @ebjornset + - [Quality of Service](https://ocelot.readthedocs.io/en/latest/features/qualityofservice.html): Support of new [Polly](https://github.com/App-vNext/Polly) v8 syntax and new [Extensibility](https://ocelot.readthedocs.io/en/23.2.0/features/qualityofservice.html#extensibility) feature by @RaynaldM +
+ +
+ Ocelot extra packages + + - [Ocelot.Provider.Polly](https://www.nuget.org/packages/Ocelot.Provider.Polly): Support of new [Polly](https://github.com/App-vNext/Polly) v8 syntax. + *Polly* [8.0+](https://github.com/App-vNext/Polly/releases) versions introduced the concept of [resilience pipelines](https://www.pollydocs.org/pipelines/). + All [AddPolly extensions](https://github.com/ThreeMammals/Ocelot/blob/develop/src/Ocelot.Provider.Polly/OcelotBuilderExtensions.cs) have been automatically migrated from **v7** to **v8**. + Please note that older **v7** extensions are marked with the `[Obsolete]` attribute and renamed using the `V7` suffix. And the old **v7** implementation has been moved to the [v7 namespace](https://github.com/ThreeMammals/Ocelot/tree/develop/src/Ocelot.Provider.Polly/v7). + See more details in [Polly v7 vs v8](https://ocelot.readthedocs.io/en/23.2.0/features/qualityofservice.html#polly-v7-vs-v8) section of [Quality of Service](https://ocelot.readthedocs.io/en/23.2.0/features/qualityofservice.html) chapter.
Stabilization aka bug fixing - [683](https://github.com/ThreeMammals/Ocelot/issues/683) by PR [1927](https://github.com/ThreeMammals/Ocelot/pull/1927) - Ocelot configuration validation logic has updated with [new rules](https://github.com/search?q=repo%3AThreeMammals%2FOcelot+IsPlaceholderNotDuplicatedIn+IsUpstreamPlaceholderDefinedInDownstream+IsDownstreamPlaceholderDefinedInUpstream&type=code) to search for placeholder duplicates in path templates. - See more in the [FileConfigurationFluentValidator](https://github.com/search?q=repo%3AThreeMammals%2FOcelot%20FileConfigurationFluentValidator&type=code) class. + [New rules](https://github.com/search?q=repo%3AThreeMammals%2FOcelot+IsPlaceholderNotDuplicatedIn+IsUpstreamPlaceholderDefinedInDownstream+IsDownstreamPlaceholderDefinedInUpstream&type=code) have been added to Ocelot's configuration validation logic to find duplicate placeholders in path templates. + See more in the [FileConfigurationFluentValidator](https://github.com/search?q=repo%3AThreeMammals%2FOcelot%20FileConfigurationFluentValidator&type=code) class. Thanks to @AlyHKafoury! + - [1518](https://github.com/ThreeMammals/Ocelot/issues/1518) hotfix by PR [1986](https://github.com/ThreeMammals/Ocelot/pull/1986) + Using the default `IServiceCollection` [DI extensions](https://github.com/ThreeMammals/Ocelot/blob/develop/src/Ocelot/DependencyInjection/ServiceCollectionExtensions.cs) to register Ocelot services resulted in the `ServiceCollection` provider being forced to be created by calling `BuildServiceProvider()`. + This resulted in problems with dependency injection libraries, or worse, causing the Ocelot app to crash! + See more in the [ServiceCollectionExtensions](https://github.com/search?q=repo%3AThreeMammals%2FOcelot+ServiceCollectionExtensions&type=code) class. Thanks to @ArwynFr! - See [all bugs](https://github.com/ThreeMammals/Ocelot/issues?q=is%3Aissue+is%3Aclosed+label%3Abug+milestone%3AFebruary%2724) of the [February'24](https://github.com/ThreeMammals/Ocelot/milestone/5) milestone
+ +
+ Documentation for version 23.2 + + - [Configuration](https://ocelot.readthedocs.io/en/23.2.0/features/configuration.html) + - [Dependency Injection](https://ocelot.readthedocs.io/en/23.2.0/features/dependencyinjection.html) + - [Quality of Service](https://ocelot.readthedocs.io/en/23.2.0/features/qualityofservice.html) + - [Service Fabric](https://ocelot.readthedocs.io/en/23.2.0/features/servicefabric.html) +
diff --git a/docs/conf.py b/docs/conf.py index b26c8b795..41b0fd36d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -8,8 +8,8 @@ project = 'Ocelot' copyright = ' 2016-2024 ThreeMammals Ocelot team' -author = 'Tom Pallister, Ocelot Core team at ThreeMammals' -release = '23.1' +author = 'Tom Pallister, Raman Maksimchuk and Ocelot Core team at ThreeMammals' +release = '23.2' # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/docs/features/dependencyinjection.rst b/docs/features/dependencyinjection.rst index d1333b7b4..c8e8030ea 100644 --- a/docs/features/dependencyinjection.rst +++ b/docs/features/dependencyinjection.rst @@ -261,8 +261,8 @@ and finally call the following native ``IConfigurationBuilder`` framework extens .. _di-configuration-addocelot: -``AddOcelot`` method -^^^^^^^^^^^^^^^^^^^^ +``AddOcelot`` methods +^^^^^^^^^^^^^^^^^^^^^ **Signatures** of the most common versions: diff --git a/docs/index.rst b/docs/index.rst index 0247a8ad4..be0b6deb4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,4 +1,12 @@ -Welcome to Ocelot `23.1 `_ +.. _Polly: https://github.com/App-vNext/Polly +.. _@ebjornset: https://github.com/ebjornset +.. _@RaynaldM: https://github.com/RaynaldM +.. _@ArwynFr: https://github.com/ArwynFr +.. _@AlyHKafoury: https://github.com/AlyHKafoury +.. _@FelixBoers: https://github.com/FelixBoers +.. _23.2: https://github.com/ThreeMammals/Ocelot/releases/tag/23.2.0 + +Welcome to Ocelot `23.2`_ ====================================================================================== Thanks for taking a look at the Ocelot documentation! Please use the left hand navigation to get around. @@ -9,6 +17,72 @@ The main features are :doc:`../features/configuration` and :doc:`../features/rou We **do** follow development process which is described in :doc:`../building/releaseprocess`. +Release Notes +------------- + + | **Release Tag**: `23.2.0 `_ + | **Release Codename**: `Lunar Eclipse `_ + +What's new? +^^^^^^^^^^^ + +- :doc:`../features/configuration`: A brand new :ref:`config-merging-tomemory` by `@ebjornset`_ as a part of the :ref:`config-merging-files` feature. + + The ``AddOcelot`` method merges the **ocelot.*.json** files into a single **ocelot.json** file as the primary configuration file, which is written back to disk and then added to the ``IConfigurationBuilder`` for the well-known ``IConfiguration``. You can now call another ``AddOcelot`` method that adds the merged JSON directly from memory to the ``IConfigurationBuilder``, using ``AddJsonStream`` instead. + + See more details in :ref:`di-configuration-overview` of :doc:`../features/dependencyinjection`. + +- :doc:`../features/servicefabric`: Published old undocumented :ref:`sf-placeholders` feature of :doc:`../features/servicefabric` `service discovery provider `_. + + This feature by `@FelixBoers`_ is available starting from version `13.0.0 `_. + +- :doc:`../features/qualityofservice`: A brand new `Polly`_ v8 pipelines :ref:`qos-extensibility` feature by `@RaynaldM`_ + +Focus On +^^^^^^^^ + +Updates of the features +""""""""""""""""""""""" + + - :doc:`../features/configuration`: New :ref:`config-merging-tomemory` feature by `@ebjornset`_ + - :doc:`../features/dependencyinjection`: Added new overloaded :ref:`di-configuration-addocelot` by `@ebjornset`_ + - :doc:`../features/qualityofservice`: Support of new `Polly`_ v8 syntax and new :ref:`qos-extensibility` feature by `@RaynaldM`_ + +Ocelot extra packages +""""""""""""""""""""" + + - `Ocelot.Provider.Polly `_: Support of new `Polly`_ v8 syntax. + + | *Polly* `8.0+ `_ versions introduced the concept of `resilience pipelines `_. + | All `AddPolly extensions `_ have been automatically migrated from **v7** to **v8**. + | Please note that older **v7** extensions are marked with the ``[Obsolete]`` attribute and renamed using the ``V7`` suffix. And the old **v7** implementation has been moved to the `v7 namespace `_. + | See more details in :ref:`qos-polly-v7-vs-v8` section of :doc:`../features/qualityofservice` chapter. + +Stabilization aka bug fixing +"""""""""""""""""""""""""""" + + - `683 `_ by PR `1927 `_. Thanks to `@AlyHKafoury`_! + + | `New rules `_ have been added to Ocelot's configuration validation logic to find duplicate placeholders in path templates. + | See more in the `FileConfigurationFluentValidator `_ class. + + - `1518 `_ hotfix by PR `1986 `_. Thanks to `@ArwynFr`_! + + | Using the default ``IServiceCollection`` `DI extensions `_ to register Ocelot services resulted in the ``ServiceCollection`` provider being forced to be created by calling ``BuildServiceProvider()``. + | This resulted in problems with dependency injection libraries, or worse, causing the Ocelot app to crash! + | See more in the `ServiceCollectionExtensions `_ class. + + - See `all bugs `_ of the `February'24 `_ milestone + +Updated Documentation +""""""""""""""""""""" + + - :doc:`../features/configuration` + - :doc:`../features/dependencyinjection` + - :doc:`../features/qualityofservice` + - :doc:`../features/servicefabric` + + .. toctree:: :maxdepth: 2 :hidden: