Skip to content

Commit

Permalink
Merge pull request #2025 from ThreeMammals/release/23.2
Browse files Browse the repository at this point in the history
Sync 'develop' to 'release/23.2'
  • Loading branch information
raman-m authored Apr 1, 2024
2 parents 4f0e483 + d2a79ac commit eb398cd
Show file tree
Hide file tree
Showing 4 changed files with 119 additions and 11 deletions.
46 changes: 40 additions & 6 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -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

<details>
<summary><b>New features of</b>: Service Fabric and ...</summary>
<summary><b>Updates of the features</b>: Configuration, Dependency Injection and QoS</summary>

- **[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
</details>

<details>
<summary><b>Ocelot extra packages</b></summary>

- [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.
</details>

<details>
<summary><b>Stabilization</b> aka bug fixing</summary>

- [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
</details>

<details>
<summary><b>Documentation</b> for version <a href="https://ocelot.readthedocs.io/en/23.2.0/">23.2</a></summary>

- [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)
</details>
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions docs/features/dependencyinjection.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down
76 changes: 75 additions & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
Welcome to Ocelot `23.1 <https://github.com/ThreeMammals/Ocelot/releases/tag/23.1.0>`_
.. _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.
Expand All @@ -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 <https://github.com/ThreeMammals/Ocelot/releases/tag/23.2.0>`_
| **Release Codename**: `Lunar Eclipse <https://www.timeanddate.com/eclipse/lunar/2024-march-25>`_
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 <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>`_.

- :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 <https://www.nuget.org/packages/Ocelot.Provider.Polly>`_: Support of new `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/main/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 :ref:`qos-polly-v7-vs-v8` section of :doc:`../features/qualityofservice` chapter.
Stabilization aka bug fixing
""""""""""""""""""""""""""""

- `683 <https://github.com/ThreeMammals/Ocelot/issues/683>`_ by PR `1927 <https://github.com/ThreeMammals/Ocelot/pull/1927>`_. Thanks to `@AlyHKafoury`_!

| `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.
- `1518 <https://github.com/ThreeMammals/Ocelot/issues/1518>`_ hotfix by PR `1986 <https://github.com/ThreeMammals/Ocelot/pull/1986>`_. Thanks to `@ArwynFr`_!

| 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.
- 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

Updated Documentation
"""""""""""""""""""""

- :doc:`../features/configuration`
- :doc:`../features/dependencyinjection`
- :doc:`../features/qualityofservice`
- :doc:`../features/servicefabric`


.. toctree::
:maxdepth: 2
:hidden:
Expand Down

0 comments on commit eb398cd

Please sign in to comment.