-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Merge v5.0-alpha to master, for v5.0.3 RTM #198
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
Remove .NET3.5 support from Polly
Provide .NET4.0 support uniquely through the Polly.Net40Async package. Remove separate Polly.Net40 package, which contained only synchronous support.
Remove sync/async code forking from codebase, as all targets now support async. Simplify name of NET40 compile constant.
Discontinue .NET3.5 support from v5.0; Rationalise .NET4.0 support
Remove ContextualPolicy (not part of documented API). Support for executing with context is now in the Policy base class.
Provide contextual execution support through `Policy` base class, from v5.0
Add CancellationToken support to sync executions. Thanks to @brunolauze for the initial implementation!
Refine cancellation support to sync retry so that it maches async cancellation. Can cancellation before execution, between retries, and in any wait between retries. Add unit tests covering all of this.
Refine cancellation support to sync breaker, so that it matches async cancellation. Can cancel before execution and during execution. Add unit tests covering cancellation during sync actions through breakers.
…xecutions Add Cancellation support for sync executions. Thanks to @brunolauze for the initial implementation.
Add functional composition syntax for PolicyWrap - instance and static variants - synchronous form only. Add units tests for same.
Add functional composition syntax for PolicyWrap - instance and static variants - asynchronous form. Add units tests for same.
…itionSyntax Add PolicyWrap (functional composition syntax) for v5.0
Add Fallback policy
Reduce allocations by sharing single static allocation for policies where certain predicates are irrelevant
* Add PolicyKeys, and execution context to Context Add PolicyKeys, and specs; Add execution context to the Context class; Adjust Execute() overloads so that all executions will carry a Context; Add overloads taking a Context, allowing for Context(executionKey) to be passed into execution; remove unnecessary usages of Context.Empty; rationalise ExecuteAsync overloads to remove mismatches between overloads taking and delegates taking a CancellationToken; rationalise messages about sync-vs-async overloads. * Specs on Policy passing Keys to execution Context Add specs verifying policy executions pass policy keys and execution context, to executions * Specs on PolicyWrap passing keys to execution Context Add specs that executions through a PolicyWrap pass the PolicyKey of the outermost PolicyWrap to the execution Context, as the PolicyWrapKey property.
Merge bulkhead policy into v5.0-alpha branch (ready for cross-team review later)
Ensure WaitAndRetryForeverAsyncSpecs tidy up after themselves
Strengthen async tests by introducing extra awaits. (Most async test-helper methods return a Task on a synchronous path, so no practical execution difference; but better demonstrates usage pattern, and defends us for different test-helper implementations in future.)
Use TaskHelper consistently for empty, completed tasks
Add TimeoutPolicy and full suite of specs
Defend timeout spec from timing issues (reduce effect of speed the specs run at on build machine)
Add CLSCompliant attribute to Polly assemblies. Fixes #159
…alpha-netstd10expt
Update v5.0.2 change descriptions. Update nuget search tags. Shorten .NET4.0Async package description as recommended by nuget tool.
Remove Polly.pcl project and nuget pkg, in favour of NetStandard1.0 project/package. Target PCL tests at NetStandard1.0 package. Update doco/project descriptions to match. Other minor documentation tidying.
Tidy the v5.0-alpha build
* Add Polly.Net40Async.specs * Update ChangeLog Update ChangeLog: Added Polly.Net40Async specs project. * Update Polly.Net40Async.nuspec
* Add Polly.Net40Async.specs * Add async .NET40 support for BulkheadPolicy Adds async .NET40 support for BulkheadPolicy. Requires the .NET40Async package taking a dependency on Nito.AsyncEx. Requires updating MicrosoftBcl dependencies to latest. Requires removing CLSCompliant attribute from Net40Async package: Nito.AsyncEx is not CLS-compliant.
Add Stephen Cleary's Nito.AsyncEx library to 3rd-party library acknowledgements
Refine cancellable synchronous WaitAndRetry. Bump version to v5.0.3
Fix Retry policies for issue 188: Where a user delegate does not observe cancellation during the final try, Polly will now honour the delegate's outcome rather than throw for the unobserved cancellation.
Refine CircuitBreaker policies for issue 188: Where a user delegate does not observe cancellation, Polly will now honour the delegate's outcome rather than throw for the unobserved cancellation
Refine TimeoutPolicy cancellation. In pessimistic executions (where we do not expect the user delegate to observe cancellation tokens), only allow the timeout token to walk away from the execution, as (intentionally) only timeout cancellation captures the abandoned task to the onTimeout delegate. Related specs.
Refine Fallback policies for issue 188: Where a user delegate does not observe cancellation, Fallback policy will now respond to the delegate's outcome rather than throw for the unobserved cancellation.
Update nuspec and changelog.md for v5.0.3 RTM
Refine Cancellable synchronous `WaitAndRetry()` implementation
Refine cancellation in Retry, CircuitBreaker, Timeout and Fallback policies
Organise specs by Policy type, into subfolders
Move specs into namespaces, by policy type
Organise filesets by policy type
Increase test tolerance for slower/inconsistent AppVeyor running
Hi @reisenberger, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution! The agreement was validated by .NET Foundation and real humans are currently evaluating your PR. TTYL, DNFBOT; |
Merged. This is a big one! Thanks for everything you do, @reisenberger 💯 |
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.
Merge v5.0-alpha to master, to create v5.0.3 RTM
Fallback
policyTimeout
policyBulkhead
isolation policyPolicyWrap