-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Release 23.3 | Spring 2024 #2088
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Override `DefaultRequestTimeoutSeconds` by new property * Build using .NET 8 SDK only * Build all 3 SDKs if target is Release * Run "dotnet tool restore" to make the "dotnet-cake" command available * Update GitVersion.Tool package * GitVersion.Tool 5.12.0 * Newtonsoft.Json * Review packages * Prepare folder structure for samples * samples Administration * Move Docker files * samples solution folder * Move ServiceFabric folders * Rename ServiceFabric folders * Re-add OcelotApplication of ServiceFabric sample * New Samples view in Visual Studio * Add Ocelot.Samples.sln * Add Ocelot.Release.sln * Remove Samples projects from main solution * log settings of Compile task * Remove legacy build settings file * queue/block_workflow * resource_class * Update .editorconfig * CS8936: Feature 'primary constructors' is not available in C# 10, 11. Feature 'primary constructors' is available in C# 12.0 or greater. But we use `net6.0` and `net7.0` * CS8936 Feature 'collection expressions' is not available in C# 10, 11. CS8936: Feature 'primary constructors' is not available in C# 10, 11. * CS0618: 'member' is obsolete: 'text'. https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs0618 Switch off the warning CS0618 for testing projects. * Fix warnings. xUnit1013 Public method 'GivenThereIsAnIdentityServerOn' on test class 'AuthenticationTests' should be marked as a Theory. Reduce the visibility of the method, or add a Theory attribute to the method. CS0618 'FileAuthenticationOptions.AuthenticationProviderKey' is obsolete: 'Use the AuthenticationProviderKeys property!'. * Don't restore and don't build in RunUnitTests target * --verbosity:detailed * Disable BDDfy console report * enable * Inherit from `UnitTest`
#2048) * Update configuration.rst * Static CSS overrides * Notes are now smaller
…tiplexing (#2050) * feat: buffer the request body during multiplexing multiple routes * style: rename clone request body method to be more explicit * Code review by @raman-m * feat: refactor clone request method, add acceptance test for form-based requests * fix: add content-length log, refactor tests from @raman-m commit * Update requestaggregation.rst * style: reverse return condition * Register `Stream` objects for disposing by downstream `HttpResponse` --------- Co-authored-by: Paul Roy <[email protected]> Co-authored-by: Raman Maksimchuk <[email protected]>
…vider (#2052) * Initial refactoring * Interfaces namespace * `IKubeServiceBuilder` interface vs `KubeServiceBuilder` class * `IKubeServiceCreator` interface vs `KubeServiceCreator` class * Customize K8s services creation * Add logger * namespace Ocelot.AcceptanceTests.ServiceDiscovery * Add `KubernetesServiceDiscoveryTests` * Unit tests * AAA pattern * Acceptance tests * Update kubernetes.rst * Check docs
* Use correct interval for request counting * Minor fixes, return correct counter value when ban period elapsed * Revert "Use correct interval for request counting" This reverts commit 7d232c7. * Revert "Artificial commit, initiate CI" This reverts commit e723dfa. * CA1822 Member 'XYZ' does not access instance data and can be marked as static * Quick code review by @raman-m * Rate Limiting feature name should match folder name * namespace `Ocelot.RateLimiting` * Extract `IRateLimitCore` interface * Remove useless `ClientRateLimitProcessor` class * Rename to `IRateLimitStorage` and dev docs * Wrap services as a feature * Review `IRateLimitCore` interface and dev docs * The middleware class prefix should match the feature name * Add some basic `RateLimitCoreTests` * Rename to `IRateLimiting` * Refactor rate limiting core * Remove redundant `SaveCounter` from the interface * Thread safe storage operations * Coalesce in return statement * Convert to file-scoped namespace * Use expression body * Unit tests for #1590 user scenario * Move test class to separate feature folder * Inherit from `Steps` * Refactoring: Follow the DRY principle * Acceptance test for #1590 user scenario * Update feature docs --------- Co-authored-by: raman-m <[email protected]>
…ions` (#2058) * EnableContentHashing not being considered from appsettings * Adding CacheOptionsCreator, Injected IRegionCreator as Singleton. Should still add some acceptance tests that are definitely missing! * Adding caching global configuration since we messed up, ignoring an important breaking change with EnableContentHashing set to false by default * Adding some further acceptance tests, validating EnableContentHashing, validating global config too. * removing some debug content * TtlSeconds must be set * updating documentation * Update docs/features/caching.rst Co-authored-by: Raman Maksimchuk <[email protected]> * Update docs/features/caching.rst Co-authored-by: Raman Maksimchuk <[email protected]> * Removing RegionCreator, moving service collection extension method to dependencyInjection\Features etc. * adding unit tests for FileCacheOptions * some more null tests... * slight refactoring, updating ICacheOptionsCreator signature * some more design refactoring * Update src/Ocelot/Configuration/Creator/CacheOptionsCreator.cs Co-authored-by: Raman Maksimchuk <[email protected]> * Code review by @raman-m * Rename `FileCacheOptions` -> `CacheOptions` * Subtly transition to `CacheOptions`, ensuring compatibility with `FileCacheOptions` to avoid a breaking change * Not obsolete --------- Co-authored-by: Guillaume Gnaegi <[email protected]> Co-authored-by: Raman Maksimchuk <[email protected]>
* routing based on headers (all specified headers must match) * routing based on headers for aggregated routes * unit tests and small modifications * find placeholders in header templates * match upstream headers to header templates * find placeholders name and values, fix regex for finding placeholders values * fix unit tests * change header placeholder pattern * unit tests * unit tests * unit tests * unit tests * extend validation with checking upstreamheadertemplates, acceptance tests for cases from the issue * update docs and minor changes * SA1649 File name should match first type name * Fix compilation errors by code review after resolving conflicts * Fix warnings * File-scoped namespaces * File-scoped namespace * Target-typed 'new' expressions (C# 9). https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/target-typed-new * IDE1006 Naming rule violation: These words must begin with upper case characters: should_* * Target-typed 'new' expressions (C# 9). https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/target-typed-new * Fix build errors * DownstreamRouteBuilder * AggregatesCreator * IUpstreamHeaderTemplatePatternCreator, RoutesCreator * UpstreamHeaderTemplatePatternCreator * FileAggregateRoute * FileAggregateRoute * FileRoute * Route, IRoute * FileConfigurationFluentValidator * OcelotBuilder * DownstreamRouteCreator * DownstreamRouteFinder * HeaderMatcher * DownstreamRouteFinderMiddleware * UpstreamHeaderTemplate * Routing folder * RoutingBasedOnHeadersTests * Refactor acceptance tests * AAA pattern in unit tests * CS8936: Feature 'collection expressions' is not available in C# 10.0. Please use language version 12.0 or greater. * Code review by @RaynaldM * Convert facts to one `Theory` * AAA pattern * Add traits * Update routing.rst Check grammar and style * Update docs --------- Co-authored-by: raman-m <[email protected]>
* feature written, tests passed * actualy passes almost all the test. * resolve conflict, hopefully. * please. * let it cook. * uses constants instead of string for version policies. * conflict res * swapped downstream method and version. * #1731 Read the Docs configuration file v2 (#1733) * fixing the documentation, using Release/20.0 as base branch * using latest conf.py, created with sphinx-quickstart, fixing the warnings during documentation generation * Update .readthedocs.yaml * switching to threemammals.org for copyright * adding requirements file, updating readthedocs.yaml, adding formats pdf / epub and config for requirements file * fixing code block in websockets.rst * ok, now it should be fine... * Update kubernetes.rst: Review and fix markup code * Update websockets.rst: Review and fix markup * Update conf.py: Update release, author and copyright --------- Co-authored-by: Raman Maksimchuk <[email protected]> * * When using the QoS option "ExceptionsAllowedBeforeBreaking" the circuit breaker never opens the circuit. * merge issue, PortFinder * some code improvements, using httpresponsemessage status codes as a base for circuit breaker * Adding more unit tests, and trying to mitigate the test issues with the method "GivenThereIsAPossiblyBrokenServiceRunningOn" * fixing some test issues * setting timeout value to 5000 to avoid side effects * again timing issues * timing issues again * ok, first one ok * Revert "ok, first one ok" This reverts commit 2e4a673. * inline method * putting back logging for http request exception * removing logger configuration, back to default * adding a bit more tests to check the policy wrap * Removing TimeoutStrategy from parameters, it's set by default to pessimistic, at least one policy will be returned, so using First() in circuit breaker and removing the branch Policy == null from delegating handler. * Fix StyleCop warnings * Format parameters * Sort usings * since we might have two policies wrapped, timeout and circuit breaker, we can't use the name CircuitBreaker for polly qos provider, it's not right. Using PollyPolicyWrapper and AsnycPollyPolicy instead. * modifying circuit breaker delegating handler name, usin Polly policies instead * renaming CircuitBreakerFactory to PolicyWrapperFactory in tests * DRY for FileConfiguration, using FileConfigurationFactory * Add copy constructor * Refactor setup * Use expression body for method * Fix acceptance test * IDE1006 Naming rule violation: These words must begin with upper case characters * CA1816 Change ReturnsErrorTests.Dispose() to call GC.SuppressFinalize(object) * Sort usings * Use expression body for method * Return back named arguments --------- Co-authored-by: raman-m <[email protected]> * feature written, tests passed * actualy passes almost all the test. * resolve conflict, hopefully. * missed this one. * please. * come on... * let it build. * let it cook. * copied from main branch. * conflict res * resolving conflicts. * another attempt. * lf * re-incorporate downstream version policy. * renamed the version policies and added acceptance tests. * trust the dotnet dev cert. * accepts cert from dotnet. * Fix compiling errors * Refactor tests * a bit of code cleanup, removing some usings * a bit more cleanup in fileroute * try and error with the tests * "Yahoo!...", said @ibnuda :) * FileRoute: let it go... Binary copy! :LoL: * FileRoute: let it cook... Re-add sweet props * `dotnet dev-certs` for the `build` job * Recover `kubernetes.rst` * docs/make.bat original version * OcelotBuilderExtensions * original src/Ocelot.Provider.Polly/v7/PollyPolicyWrapper.cs * `IVersionPolicyCreator` XML docs * Code review by @raman-m (part 1) * RequestMapper : care about diff * Code review by @raman-m (part 2) * Fix Should_return_OK_status_and_multiline_indented_json_response_with_json_options_for_custom_builder * Update configuration.rst Add DownstreamVersionPolicy section * Update docs * Rename `DownstreamVersionPolicy` to `DownstreamHttpVersionPolicy` * update docs after prop renaming * Sort props --------- Co-authored-by: Guillaume Gnaegi <[email protected]> Co-authored-by: Raman Maksimchuk <[email protected]>
* feat(configuration): adding route metadata * feat(configuration): update docs * feat(configuration): replace Dictionary<> by IDictionary<>, code cleaning * feat(configuration): replace Dictionary<> by IDictionary<> * feat(configuration): replace Dictionary<> by IDictionary<> * feat(configuration): update the data type of FileDynamicRoute Metadata * formatting * feat(configuration): fix integration tests * feat !1843 add extension methods for DownstreamRoute to get metadata * feat !1843 add extension methods for DownstreamRoute * feat !1843 update docs * feat !1843 update docs * feat !1843 cleanup split string logic * SA1505: An opening brace should not be followed by a blank line * IDE1006: Naming rule violation: These words must begin with upper case characters: should_xxx * Fix compile errors after rebasing * Fix unit tests + AAA pattern * First Version, providing a generic extension method GetMetadata<T> with global configuration * Adding ConvertToNumericType method to be able to use the NumberStyles enum * adding first acceptance tests * The tests are now passing again... * adding latest test cases. That should be enough (includes global configuration changes too) * Update metadata.rst * adding the xml docs for IMetadataCreator and MetadataCreator * renaming MetadataCreator to DefaultMetadataCreator * number tests for .net 6 too * Moving Metadata specific downstream route extensions to the Metadata folder * cleanup * applying some of the requested changes * Final code review by @raman-m * Add traits * Fix docs build error --------- Co-authored-by: Raman Maksimchuk <[email protected]> Co-authored-by: Guillaume Gnaegi <[email protected]>
…e discovery provider (#2067) * Interfaces folder and namespace * `IConsulServiceBuilder` interface vs `ConsulServiceBuilder` class * Inject services into `ConsulServiceBuilder` * Extend `IConsulServiceBuilder` interface * Finalize design of the customization. No JSON options because `ServiceDiscoveryProvider` are generalized for all types of providers * Remove BDDfy in favor of AAA pattern * Refactor original unit tests * Rename to `DefaultConsulServiceBuilder` * Update src/Ocelot.Provider.Consul/DefaultConsulServiceBuilder.cs Update `IsValid(ServiceEntry entry)` Co-authored-by: Raynald Messié <[email protected]> * Code review by @RaynaldM * Read the node instance from `ServiceEntry`. If it is null, search for a node in the common collection. * Refactor `OcelotBuilderExtensionsTests` * The generic `AddConsul<TServiceBuilder>(IOcelotBuilder)` method * Rename to `ConsulTests` * Unit tests: 100% coverage * Move to `ServiceDiscovery` folder * DRY: GivenServiceEntry, GivenRoute * Convert to file-scoped namespace * Inherit from `Steps` * Refactor acceptance tests * Acceptance test for #954 user scenario * Move "Store Configuration in Consul" to "Service Discovery" * Feature docs --------- Co-authored-by: Raynald Messié <[email protected]>
* Add Ocelot.csproj README.md link * Code review --------- Co-authored-by: Raman Maksimchuk <[email protected]>
* #2078 V7 polly syntax not longer supported * fix doc * Update qualityofservice.rst Consolidate all notes into the Notes section --------- Co-authored-by: Raman Maksimchuk <[email protected]>
…mUrlCreatorMiddleware` (#2003) * issues/2002 : Regression at DownstreamUrlCreatorMiddleware * issues/2002:: add some unit tests and acceptance test * issues/2002: fix test * Apply suggestions from code review Co-authored-by: Raynald Messié <[email protected]> * issues/2002: fix build * CS8936 Feature 'collection expressions' is not available in C# 10.0. Please use language version 12.0 or greater. * Code review by @ggnaegi #2003 (review) * Original version from develop * The fix by @bbenameur with improved version by @ggnaegi * Don't order parameters, add to the end * AAA pattern in unit tests * Double-check tests * Remove BDDfy * Inherit from `Steps` * DRY in acceptance tests * Tests for #2002 user scenario * Update docs --------- Co-authored-by: Raynald Messié <[email protected]> Co-authored-by: Raman Maksimchuk <[email protected]>
* #2085 Circuit Breaker behavior polly v7 vs Polly v8 * Code review by @raman-m * Refactor the provider * AAA pattern in unit tests * Convert to file-scoped namespace * Refactor acceptance tests * Code review by @ggnaegi * Rename protected method to `ConfigureStrategies` * Refactor shortcut of the feature * `DurationOfBreak` constraints * Fitness testing of new changes in the provider * Update docs --------- Co-authored-by: Raman Maksimchuk <[email protected]>
TODO
|
RaynaldM
previously approved these changes
Jun 7, 2024
ggnaegi
previously approved these changes
Jun 7, 2024
* Release notes * Update docs * Twilight Texas codename * Ocelot Core team members should not be in Top 3 Chart
raman-m
added a commit
that referenced
this pull request
Jun 8, 2024
Release 23.3 | Spring 2024 | Twilight Texas release
8 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Spring 2024 aka Twilight Texas release
Milestone: Spring'24
Version: 23.3
Features
configuration.rst
#2048Kube
service discovery provider #2052EnableContentHashing
setting by globalCacheOptions
#2058Consul
service discovery provider #2067DownstreamUrlCreatorMiddleware
#2003